Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gfpaiva/wishlist-api
Wishlist API É uma API pública para criar e gerenciar listas de desejos.
https://github.com/gfpaiva/wishlist-api
api-rest docker fastapi postgresql python3 redis
Last synced: 9 days ago
JSON representation
Wishlist API É uma API pública para criar e gerenciar listas de desejos.
- Host: GitHub
- URL: https://github.com/gfpaiva/wishlist-api
- Owner: gfpaiva
- Created: 2020-10-23T20:54:51.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2020-12-07T02:25:29.000Z (almost 4 years ago)
- Last Synced: 2024-04-11T15:40:53.990Z (7 months ago)
- Topics: api-rest, docker, fastapi, postgresql, python3, redis
- Language: Python
- Homepage: https://gfpaiva-wishlist-api.herokuapp.com/docs
- Size: 111 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
[![Python application](https://github.com/gfpaiva/wishlist-api/workflows/Python%20application/badge.svg)](https://github.com/gfpaiva/wishlist-api/actions?query=workflow%3A%22Python+application%22)
[![CodeFactor](https://www.codefactor.io/repository/github/gfpaiva/wishlist-api/badge)](https://www.codefactor.io/repository/github/gfpaiva/wishlist-api)
[![codecov](https://codecov.io/gh/gfpaiva/wishlist-api/branch/main/graph/badge.svg?token=MRSD5MVV9H)](https://codecov.io/gh/gfpaiva/wishlist-api)
[![StackShare](http://img.shields.io/badge/tech-stack-0690fa.svg?style=flat)](https://stackshare.io/gfpaiva/wishlist-api)# WISHLIST API
[Wishlist Api](https://gfpaiva-wishlist-api.herokuapp.com/docs) É uma API Pública (com autenticação de aplicação) para criar e gerenciar listas de desejos.
Criado como side project para estudo e diversão 🤓.
Desenvolvido a partir das especificações técnicas do desafio técnico do [LuizaLabs](http://luizalabs.com/), consumindo [API externa](https://gist.github.com/Bgouveia/9e043a3eba439489a35e70d1b5ea08ec) para detalhe dos produtos.## ⚙️ Requisitos
Recomendado (principalmente para desenvolvimento local):
- [Docker\*](https://www.docker.com/)
Ou instalação a parte dos serviços:
- [Python 3.8](https://www.python.org/)
- [Postgres 13.0](http://postgresql.org/)
- [Redis](https://redis.io/)\* Dica para linux: [Post-installation](https://docs.docker.com/engine/install/linux-postinstall/) recomendado para não precisar rodar comandos docker com `sudo` 😉
## 🏃🏽♂️ Rodando local
Primeiro de tudo você precisa criar um arquivo `.env` na raiz do projeto.
Você pode usar o arquivo `.env.example`, apenas duplicá-lo e renomeá-lo para `.env` já te deixa preparado para o desenvolvimento local.Scripts:
| comando | descrição |
| ------------- | --------------------------------------------------------------------------------------------- |
| make dev | Encerra processo anterior, e cria novo através do _docker-compose_ (python, postgres e redis) |
| make dev-logs | Exibe logs dos serviços do _docker-compose_ caso estejam rodando |Caso seu sistema não tenha suporte para rodar comandos do [make](https://pt.wikipedia.org/wiki/Makefile) você pode copiar e rodar manualmente as receitas que estão no arquivo `./Makefile`.
Após os serviços e aplicação rodando, você pode acessar [http://localhost:3000](http://localhost:3000) para desenvolvimento e teste da API. Todos os endpoints estão documentados via [SwaggerUI](https://swagger.io/tools/swagger-ui/), que pode ser acessado no endereço [http://localhost:3000/docs](http://localhost:3000/docs).Uma autenticação inicial é criada para realizar os testes local:
- usuário `wishlist`
- senha `wishlist`(receitas podem ser conferidas em `db/init.sql`)
## ✔️ Qualidade
Alguns checks feitos no código assegurando mais qualidade:
- [Github Actions](https://github.com/gfpaiva/wishlist-api/actions?query=workflow%3A%22Python+application%22) (Lint e testes)
- [CodeCov](https://codecov.io/gh/gfpaiva/wishlist-api) (Cobertura de testes)
- [CodeFactor](https://www.codefactor.io/repository/github/gfpaiva/wishlist-api) (CodeScanner verificando vulnerabilidades e code smells)## 🔍 Testes
Scripts:
| comando | descrição |
| --------------------- | -------------------------------------------------------------------------------------------------- |
| make test | Roda testes de unidade dos services da aplicação |
| make test-cov | Roda testes de unidade dos services da aplicação e gera relatórios de coverage |
| make test-integration | Inicia serviços através do _docker-compose_ e roda testes de integração dos endpoints da aplicação |## 🚀 Deploy
Hospedado no [Heroku](https://www.heroku.com/). E pode ser acessado no endereço [https://gfpaiva-wishlist-api.herokuapp.com/docs](https://gfpaiva-wishlist-api.herokuapp.com/docs) (Documentação)
Processo de deploy e build são feitos automaticamente após sucesso dos checks do Github Actions na branch `main`.