Verbos

Nosso backend consistirá em uma API com rotas que devem seguir as seguintes regras:

  1. As rotas devem ser nomeadas em inglês;
  2. Toda rota privada deve ser nomeada seguindo o formato <substantivo>/<verbo>. Exemplo: /user/create;
  3. Rotas públicas devem seguir o formato /public/<verbo>. Exemplo: /public/login;
  4. Rotas NÃO DEVEM incluir parâmetros em suas URIs. Exemplo: /post/delete/{post_id};
  5. Cada rota DEVE ser mapeada para um único endpoint.

Cada endpoint deve seguir as seguintes regras:

  1. Todo parâmetro DEVE ser passado como query parameter. O input do usuário não deve ser lido de nenhum outro lugar;
  2. Todo endpoint DEVE usar o método HTTP GET;
  3. Todo endpoint DEVE retornar XML com no mínimo um campo message informando o motivo da resposta;
  4. Requisições que falharem DEVEM ser retornadas com status HTTP 400;
  5. Requisições que forem concluídas com sucesso DEVEM ser retornadas com status HTTP 200.

Especificações técnicas da API:

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