https://github.com/reinaldoper/fastapi-mongo
Project using fastAPI with mongodb.
https://github.com/reinaldoper/fastapi-mongo
docker-compose mongodb pytest-plugin python
Last synced: 2 months ago
JSON representation
Project using fastAPI with mongodb.
- Host: GitHub
- URL: https://github.com/reinaldoper/fastapi-mongo
- Owner: reinaldoper
- Created: 2024-04-30T04:16:36.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-05-01T21:40:02.000Z (about 2 years ago)
- Last Synced: 2025-02-05T16:19:13.597Z (over 1 year ago)
- Topics: docker-compose, mongodb, pytest-plugin, python
- Language: Python
- Homepage:
- Size: 18.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API de Gerenciamento de Produtos e Clientes
## Instalar as dependências:
```shell
make install
```
## Subir o docker-compose:
```shell
make docker
```
## Subir o servidor:
```shell
make run
```
## Rodar os testes:
```shell
make test
```
## Este é o gerenciamento de produtos e clientes em uma loja. Ela permite a criação, leitura, atualização e exclusão de produtos e clientes.
## Endpoints da base de dados Produtos
### Criação de Produto
- URL: /products/
- Método: POST
- Código de Status: 201 - Created
- Descrição: Cria um novo produto com os dados fornecidos.
- Parâmetros do Corpo da Requisição:
```shell
name (string): Nome do produto (obrigatório)
quantity (int): Quantidade do produto em estoque (obrigatório, maior que zero)
price (float): Preço do produto (obrigatório, maior que zero)
```
### Obtenção de Produto
- URL: /products/{id}
- Método: GET
- Código de Status: 200 - OK
- Descrição: Retorna os detalhes de um produto específico com base no ID fornecido.
- Parâmetros da URL:
```shell
id (UUID): ID único do produto
```
### Listagem de Produtos
- URL: /products/
- Método: GET
- Código de Status: 200 - OK
- Descrição: Retorna uma lista de todos os produtos disponíveis.
### Atualização de Produto
- URL: /products/{id}
- Método: PATCH
- Código de Status: 200 - OK
- Descrição: Atualiza os detalhes de um produto específico com base no ID fornecido.
- Parâmetros da URL:
```shell
id (UUID): ID único do produto
```
- Parâmetros do Corpo da Requisição:
```shell
name (string): Novo nome do produto
quantity (int): Nova quantidade do produto em estoque
price (float): Novo preço do produto
```
### Exclusão de Produto
- URL: /products/{id}
- Método: DELETE
- Código de Status: 204 - No Content
- Descrição: Remove um produto específico com base no ID fornecido.
- Parâmetros da URL:
```shell
id (UUID): ID único do produto
```
---
## Endpoints da base de dados Clientes
### Criação de CLientes
- URL: /clients/
- Método: POST
- Código de Status: 201 - Created
- Descrição: Cria um novo cliente com os dados fornecidos.
- Parâmetros do Corpo da Requisição:
```shell
name (string): Nome do cliente (obrigatório)
quantity (int): Quantidade de produtos em estoque (obrigatório, maior que zero)
product_id (UUID): Id do produto associado (obrigatório, maior que zero)
```
### Obtenção de Clientes
- URL: /clients/{id}
- Método: GET
- Código de Status: 200 - OK
- Descrição: Retorna os detalhes de um cliente específico com base no ID fornecido.
- Parâmetros da URL:
```shell
id (UUID): ID único do cliente
```
### Listagem de Clientes
- URL: /clients/
- Método: GET
- Código de Status: 200 - OK
- Descrição: Retorna uma lista de todos os clientes disponíveis.
### Atualização de Cliente
- URL: /clients/{id}
- Método: PATCH
- Código de Status: 200 - OK
- Descrição: Atualiza os detalhes de um cliente específico com base no ID fornecido.
- Parâmetros da URL:
```shell
id (UUID): ID único do cliente
```
- Parâmetros do Corpo da Requisição:
```shell
quantity (int): Nova quantidade do produto em estoque
```
### Exclusão de Cliente
- URL: /pclients/{id}
- Método: DELETE
- Código de Status: 204 - No Content
- Descrição: Remove um cliente específico com base no ID fornecido.
- Parâmetros da URL:
```shell
id (UUID): ID único do cliente
```
### Tratamento de Erros
- 400 - Bad Request: Solicitação inválida devido a dados ausentes ou inválidos.
- 404 - Not Found: O produto solicitado não foi encontrado.
- 422 - Unprocessable Entity: Erro de validação nos dados fornecidos.
- 500 - Internal Server Error: Erro interno do servidor ao processar a solicitação.
- Esta API permite interagir com os produtos da loja de forma fácil e segura. Certifique-se de fornecer os dados corretos ao fazer solicitações e verifique as mensagens de erro para entender qualquer problema que possa surgir durante a interação com a API.