Skip to content

Latest commit

 

History

38 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banking DDD Expriment

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.

Dependênias

  • Python 3.7
  • PostgreSQL 13.1

Instalação

É 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/.

Desenvolvimento e testes

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

API e Documentação

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:

api documentation

Documentação

Para mais informações acesse a pasta docs.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages