Verbos
Nosso backend consistirá em uma API com rotas que devem seguir as seguintes regras:
- As rotas devem ser nomeadas em inglês;
- Toda rota privada deve ser nomeada seguindo o formato
<substantivo>/<verbo>
. Exemplo:/user/create
; - Rotas públicas devem seguir o formato
/public/<verbo>
. Exemplo:/public/login
; - Rotas NÃO DEVEM incluir parâmetros em suas URIs.
Exemplo:
/post/delete/{post_id}
; - Cada rota DEVE ser mapeada para um único endpoint.
Cada endpoint deve seguir as seguintes regras:
- Todo parâmetro DEVE ser passado como query parameter. O input do usuário não deve ser lido de nenhum outro lugar;
- Todo endpoint DEVE usar o método HTTP
GET
; - Todo endpoint DEVE retornar XML com no mínimo
um campo
message
informando o motivo da resposta; - Requisições que falharem DEVEM ser retornadas com
status HTTP
400
; - Requisições que forem concluídas com sucesso DEVEM ser
retornadas com status HTTP
200
.
Especificações técnicas da API:
- Nossa API será implementada usando TypeScript e NodeJS v22.7.0;
- Usaremos NGINX 1.26 como proxy reverso;
- Banco de dados será o PostgreSQL 16.4;
Estrutura de pastas:
/
/package.json
/package-lock.json
/src/
/config.ts
/index.ts
/routes.ts
/endpoints/
/public/
/<verbo>.ts
/<substantivo>/
/<verbo>.ts
/models/
/<substantivo>.ts
/repositories/
/<substantivo>-repository.ts