Desafio Cake ERP
Go to file
Augusto Gunsch 6e147cbbdb
Improve dynos
2021-12-27 19:09:10 -03:00
api Add migrations 2021-12-27 19:01:49 -03:00
.gitignore Adicionar testes unitários 2021-10-19 00:26:16 -03:00
Makefile Usar ORM ao invés de SQL bruto 2021-10-17 18:59:27 -03:00
Procfile.txt Improve dynos 2021-12-27 19:09:10 -03:00
README.md Arrumar ordem das frases 2021-10-19 00:27:33 -03:00
migrate.sh Improve dynos 2021-12-27 19:09:10 -03:00
requirements.txt Adicionar testes unitários 2021-10-19 00:26:16 -03:00
run.sh Improve dynos 2021-12-27 19:09:10 -03:00

README.md

Rodando

As dependências (Python) do projeto estão listadas em requirements.txt.

Vá para o diretório api:

cd api

Crie o banco de dados:

flask db init
flask db migrate
flask db upgrade

Inicie o servidor de desenvolvimento:

flask run

Por padrão o servidor tem sua interface em http://localhost:5000.

Rodando Testes

No diretório raíz:

python3 -m api.tests

Desenvolvimento

  • Comecei a desenvolver o projeto em Rust, mas sofri muito com a linguagem, perdendo uma tarde inteira lutando com o borrow checker e o framework Rocket. Concluí que preciso aprender melhor as mecânicas de ownership do Rust, e decidi fazer em Python (framework Flask) ao invés.
  • Pensei em fazer em C# ou C++, mas seria obrigado a usar um sistema de build como cmake, que demoraria bastante tempo pra organizar. Isso porque uso Linux, e não posso garantir a portabilidade das Makefiles pra outras plataformas.
  • Comecei fazendo com SQL bruto, mas aprendi como funciona a biblioteca de ORM SQLAlchemy, e passei a usá-la.

Endpoints

Os endpoints que já estão funcionando marcados:

  • GET /trainer
  • POST /trainer
  • POST /trainer/authenticate
  • GET /trainer/{trainerId}
  • GET /trainer/{trainerId}/pokemon
  • POST /trainer/{trainerId}/pokemon
  • GET /trainer/{trainerId}/pokemon/{pokemonId}
  • DELETE /trainer/{trainerId}/pokemon/{pokemonId}