Este repositório contém uma aplicação escrita em Python >= 3.7
que está dividida em várias camadas. A implementação tenta seguir algumas ideias do DDD
e da arquitetura hexagonal
.
- Python
3.7
- PostgreSQL
13.1
É recomandável instalar e utilizar a aplicação a partir da imagem Docker, tudo deve funcionar com a execução deste comando:
$ docker-compose up
Você também pode optar pela instalação local sem ajuda do Docker, neste caso garanta que as dependências sejam atendidas. Também é recomandado que a instalação seja feita utilizando um ambiente virtual do Python
. Para iniciar a instalação, rode os comandos:
$ python -m venv .venv && source .venv/bin/activate
$ pip install -r requirements.txt
$ python setup.py install
Agora edite o arquivo .env
e informe a URL em formato de DSN
para o seu banco de dados. Neste ponto a aplicação já deve estar instalada no seu path virtual e pronta para ser executada.
Para rodar a aplicação, execute:
$ uvicorn banking.api:app --host 0.0.0.0 --reload
A API estará disponível no endereço http://0.0.0.0:8000/.
O desenvolvimento desse experimento levou em consideração a prática da execução de testes de mutação, para verificar a sua saída execute:
$ mut.py --target banking --unit-test tests -c --timeout-factor 0.5
Se quiser apenas executar os testes de integração e unidade, execute:
$ python setup.py test
Para este projeto o micro framework FastAPI
foi escolhido. A cultura de definição de tipos e da convenção em detrimento da configuração torna o desenvolvimento mais ágil e prazeroso.
Outra facilidade que o FastAPI
nos traz é a geração automática de documentações do tipo swagger
, com a aplicação rodando basta acessar o endereço:
Você deve ver algo semelhante a imagem abaixo:
Para mais informações acesse a pasta docs.