Projeto desenvolvido com base nos conhecimento adquiridos atráves do curso de Python oferecido pelo LuizaCode 5ª edição.
Foi criado um conjunto de APIs REst em python para um carrinho de compras, utilizando o framework FastAPI com seus registros salvos no banco de dados MongoDB.
Para executar:
sudo docker-compose up -d --build
Para parar:
sudo docker-compose down
Para ver os logs:
sudo docker-compose logs -f
Para utilizar os endpoints de Criar Endereço, Deletar Endereço e Deletar Cliente é necessário autenticação.
Para fazer a autenticação é necessãrio primeiro criar um cliente da maneira normal, e então obter um token fazendo um POST no endpoint /token
com o email e a senha, utilizando FORM, por exemplo, para um Cliente com email [email protected]
e senha string
.
curl -X POST http://localhost:8000/token -F username='[email protected]' -F password='string'
Esse endpoint então retornará o token de acesso, o token então deve ser utilizado para utilização dos endpoints protegidos, sendo adicionado no endpoint da seguinte maneira, para o exemplo de adicionar um endereço a um cliente:
curl -X 'POST' \
'http://localhost:8000/enderecos/?email=user%40email.com' \
-H 'Authorization: Bearer TOKEN_OBTIDO_ANTERIORMENTE_AQUI' \
-H 'Content-Type: application/json' \
-d '{
"rua": "string",
"cep": "string",
"cidade": "string",
"estado": "string"
}'
Também é possível fazer essas operações de maneira mais simples utilizando o /docs
onde possui um botão Authorize
que já coloca o token automaticamente em todas as operações que o necessitam estando na página.
https://carrinho-compras-luiza-code.herokuapp.com/docs#/
- Cadastrar clientes
- Cadastrar endereço
- Pesquisar cliente
- Pesquisar endereço
- Remover cliente
- Remover endereço
- Cadastrar produto
- Atualizar dados de produto
- Pesquisar produto
- Pesquisar produto pelo nome
- Remover um produto
-
Criar carrinho de compras e adicionar itens
-
Atualizar os dados do carrinho
-
Remover itens
-
Remover carrinho
-
Busca carrinho por cliente
-
Consultar carrinhos por produto
-
Consultar carrinhos abandonados
-
Consultar produtos "em alta"/"populares" nos carrinhos
-
Fechar carrinho (pedido)
-
Consultar pedido (carrinho fechado) por id
-
Consultar pedidos por cliente
-
Consultar pedidos por produto
-
Consultar produtos mais vendidos
-
Consultar quantidade e valor total de pedidos por cliente
- Especificação do produto
- Documentação a API Rest com Swagger/OpenAPI
- Readme
- Testes unitários (parcial)
- Autenticação
- Mensagens de log
- Arquivo Dockerfile e docker-compose
- Deploy