Este projeto é uma API RESTful para gerenciar uma loja virtual, desenvolvida utilizando o framework NestJS. A API suporta operações CRUD completas para produtos, categorias e usuários, além de autenticação e autorização.
A api-loja-restful-nest
é uma aplicação backend desenvolvida com NestJS, um framework progressivo para a construção de aplicações Node.js escaláveis e eficientes. Esta API permite gerenciar uma loja virtual, oferecendo endpoints para criar, ler, atualizar e deletar produtos, categorias e usuários. Além disso, inclui funcionalidades de autenticação e autorização para proteger os recursos da aplicação.
- Gerenciamento de Produtos: CRUD completo para produtos, incluindo nome, descrição, preço e categoria.
- Gerenciamento de Categorias: CRUD completo para categorias de produtos.
- Gerenciamento de Usuários: CRUD completo para usuários, incluindo cadastro, login e perfis.
- Autenticação e Autorização: Implementação de JWT (JSON Web Tokens) para autenticar e autorizar usuários.
- Validação de Dados: Validação robusta de dados de entrada utilizando a biblioteca class-validator.
- Documentação de API: Documentação automática da API com Swagger.
- NestJS: Framework para a construção de aplicações Node.js eficientes e escaláveis.
- TypeScript: Linguagem de programação utilizada para desenvolvimento do projeto.
- TypeORM: ORM (Object-Relational Mapper) para interagir com o banco de dados.
- PostgreSQL: Banco de dados relacional utilizado para armazenar os dados da aplicação.
- JWT: Implementação de autenticação segura com JSON Web Tokens.
- Swagger: Ferramenta para documentação automática da API.
- Node.js
- npm ou yarn
- PostgreSQL
-
Clone o repositório:
git clone https://github.com/lmoraesdev/api-loja-restful-nest.git cd api-loja-restful-nest
-
Instale as dependências:
npm install
-
Configure as variáveis de ambiente:
Crie um arquivo .env na raiz do projeto e adicione as seguintes variáveis:
DATABASE_HOST=localhost DATABASE_PORT=5432 DATABASE_USER=seu_usuario DATABASE_PASSWORD=sua_senha DATABASE_NAME=nome_do_banco JWT_SECRET=sua_chave_secreta
-
Execute as migrações do banco de dados:
npm run typeorm migratuin:run
-
incie a aplicação:
npm run start
- Produtos
GET /products
: Lista todos os produtosPOST /products
: Cria um novo produtoGET /products/:id
: Retorna um produto específicoPUT /products/:id
: Atualiza um produto específicoDELETE /products/:id
: Deleta um produto específico
- Categoria
GET /categories
: Lista todas as categoriasPOST /categories
: Cria uma nova categoriaGET /categories/:id
: Retorna uma categoria específicaPUT /categories/:id
: Atualiza uma categoria específica-DELETE /categories/:id
: Deleta uma categoria específica
- Usuários
POST /auth/signup
: Registra um novo usuárioPOST /auth/login
: Autentica um usuário e retorna um token JWT