Garantir a coesão de dados entre backend, frontend e mock sem nenhuma ajuda é díficil, o que pode ocasionar bugs e diminuir a velocidade de desenvolvimento. Ao utilizar o padrão OpenAPI para documentar os endpoints da API conseguimos também fazer uso de ferramentas específicas para gerar código e validar dados afim de garantir que todas as camadas da aplicação estão em sincronia, veja algumas da funcionalidades que conseguimos alcançar com essas ferramentas:
- Validação de request e response com openapi-core;
- Geração automática de tipos a partir do openapi com openapi-typescript;
- Inferência de tipo em toda aplicação;
- Validação de request e response com @oas-tools/core;
- Métodos implementam paths do openapi;
- Server de verdade com express;
- Teste automatizado com schemathesis;
Na pasta back
rode pip install -r requirements.txt
para instalar todas as depêndencias e depois python manage.py runserver
para iniciar o backend, qualquer alteração no api.yaml
irá reiniciar o servidor automaticamente.
Na pasta front
rode npm install
para instalar todas as depêndencias, npm run dev
para subir a aplicação e npm run watch
para observar mudanças no api.yaml
e gerar os tipos automaticamente.
Na pasta mock
rode npm install
para instalar todas as depêndencias e depois npm run watch
para subir o servidor mock, qualquer alteração no api.yaml
irá reiniciar o servidor automaticamente.
Na raiz rode pip install schemathesis
e depois st run api.yaml --base-url http://localhost:PORT
com a porta correta do servidor que deseja testar (mock: 3000
, real: 8000
)