cake-erp-challenge/README.md

44 lines
1.4 KiB
Markdown
Raw Normal View History

2021-10-14 15:02:23 -04:00
# Rodando
As dependências (Python) do projeto estão listadas em `requirements.txt`.
2021-10-17 18:24:03 -04:00
2021-10-18 17:37:24 -04:00
Vá para o diretório `api`:
```
cd api
```
2021-10-17 18:23:00 -04:00
Crie o banco de dados:
2021-10-18 17:37:24 -04:00
```
flask db init
flask db migrate
flask db upgrade
```
2021-10-17 18:24:03 -04:00
2021-10-18 17:37:24 -04:00
Inicie o servidor de desenvolvimento:
```
flask run
```
2021-10-17 18:24:03 -04:00
2021-10-18 23:26:16 -04:00
## Rodando Testes
No diretório **raíz**:
```
python3 -m api.tests
```
2021-10-17 18:24:03 -04:00
Por padrão o servidor tem sua interface em `http://localhost:5000`.
2021-10-14 15:02:23 -04:00
# 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 `Makefile`s pra outras plataformas.
2021-10-17 20:21:28 -04:00
- 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:
- [X] GET /trainer
- [X] POST /trainer
- [X] POST /trainer/authenticate
- [X] GET /trainer/{trainerId}
2021-10-18 15:49:47 -04:00
- [X] GET /trainer/{trainerId}/pokemon
- [X] POST /trainer/{trainerId}/pokemon
- [X] GET /trainer/{trainerId}/pokemon/{pokemonId}
- [X] DELETE /trainer/{trainerId}/pokemon/{pokemonId}