This repository was created to make a Product challenge, this test require make a simple api to list products, create products, update products, get one products and remove products.
Este é uma solução de uma API em Node.js & Typescript!
- Single Responsibility Principle (SRP)
- Open Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
- Domain (D)
- Driven (D)
- Design (D)
- Clean Architecture
- Use Cases
- NPM
- Typescript
- Git
- Express
- Eslint
- Jest
- Mongo
- Mongoose
- API Rest com Express
- CORS
- Alias
- Branch
- Tag
- Merge
- POO
- Interface
Recursos disponíveis para acesso via API ou endpoints(URI):
- baseURL - localhost:3000/v1/
- products - /products
Método | Descrição |
---|---|
POST |
/products |
GET |
/products/{id} |
GET |
/products |
PUT |
/products/{id} |
DELETE |
/products/{id} |
Um exemplo do funcionamento das rotas.
- Rode um yarn | npm install para baixar todas as dependências
docker-compose build/sudo docker-compose build
- no windows/Linuxdocker-compose up -d/sudo docker-compose up -d
- Para rodar a o container em backGrounddocker-compose up/docker-compose up
- Para rodar a aplicação também- Rode um
docker ps/sudo docker ps
- Para verificar se os containers estão rodando
Requisições para a API devem seguir os padrões:
Método | Descrição |
---|---|
GET |
Retorna informações de um ou mais registros. |
POST |
Utilizado para criar um novo registro. |
PUT |
Utilizado para atualizar um registro. |
DELETE |
Utilizado para remover um registro. |
- Para executar, basta:
Comando | Descrição |
---|---|
yarn test ou npm run test |
Rodando os testes da Aplicação |
yarn dev ou npm run dev |
Rodando a aplicação em geral |
yarn test |
Rodando os testes da Aplicação |
yarn lint |
Rodando os ajusts na Aplicação |
Código | Descrição |
---|---|
200 |
Requisição executada com sucesso (success). |
201 |
Registro Criado com sucesso. |
400 |
Erros de validação ou os campos informados não existem no sistema. |
404 |
Valor não encontrado |
500 |
Erro interno do servidor. |
-
Response 201 (application/json)
-
Body
{ "success": true/false, "message": String, "data": Object/String }
-
Caso a requisição não conter nenhuma resposta ou falhar o retorno será:
-
Response 400(Aplication/json)
{ "success": false, "data": "Invalid User" }