Este projeto consiste em uma API simples desenvolvida em Python, utilizando o framework Sanic para construção do servidor web e o banco de dados MongoDB para armazenamento de dados. A API implementa as operações básicas de CRUD (Create, Read, Update, Delete),permitindo interações com recursos por meio de requisições HTTP.
Antes de começar, verifique se você atende aos seguintes requisitos:
- Python na versão 3.10.12 ou superior.
- Sistema Operacional Linux
Siga estas etapas para configurar e executar o projeto em seu ambiente local
Clone o repositório do projeto ou baixe o arquivo zip e extraia-o em seu sistema local.
Crie um ambiente virtual utilizando o comando:
python3 -m venv venv
Ative o ambiente virtual executando:
. venv/bin/activate
Com o ambiente virtual ativo, instale as dependências listadas no arquivo requirements.txt utilizando o seguinte comando:
pip install -r requirements.txt
Execute o serviço do banco de dados utilizando o Docker Compose. No terminal, execute o seguinte comando:
docker compose up -d
Com todas as dependências instaladas e o serviço do banco de dados em execução, inicie o servidor executando o arquivo server.py.
python3 server.py
Utilize uma ferramenta como Postman ou Insomnia para testar os endpoints da API. Abaixo, há um guia detalhado dos endpoints disponíveis.
- GET -
/petshops/
- Retorna uma lista dos petshops - GET -
/petshops/id:str
- Retorna um petshop - POST -
/petshops/
- Criação de petshop-
Exemplo de corpo da requisição para criação:
{ "nome_petshop": "Cantinho dos Bichinhos", "descricao": "O cantinho aconchegante onde os amigos peludos são tratados com carinho e atenção." }
-
- PUT -
/petshops/id:str
- Atualiza um petshop por id-
Exemplo de corpo da requisição para atualização completa:
{ "nome_petshop": "AmigoFiel Pet Shop"", "descricao": "O paraíso dos animais de estimação, onde a felicidade deles é nossa prioridade." }
-
- PATCH -
/petshops/id:str
- Atualiza um petshop por id parcialmente-
Exemplo de corpo da requisição para atualização parcial:
{ "nome_petshop": "Campina pet" }
-
- DELETE -
/petshops/id:str
- Deleta petshop por id
- GET -
/pets/
- Retorna uma lista dos pets - GET -
/pets/id:str
- Retorna um pet - POST -
/pets/
- Criação de pet-
Exemplo de corpo da requisição para criação:
{ "nome_pet": "Bolinha", "especie": "Hamster" }
-
- PUT -
/pets/id:str
- Atualiza um pet por id-
Exemplo de corpo da requisição para atualização completa:
{ "nome_pet": "Safira", "especie": "Cachorro" }
-
- PATCH -
/pets/id:str
- Atualiza um pet por id parcialmente-
Exemplo de corpo da requisição para atualização parcial:
{ "especie": "Gato" }
-
- DELETE -
/pets/id:str
- Deleta pet por id