Boas práticas RFC7807
- Boas práticas RFC7807
Nomenclaturas
- Todos os recursos devem ser expressos como
substantivoe não como verbo. A prática de evitar verbos nos nomes das rotas é baseada em princípios de design de APIs RESTful, que sugerem que os URLs devem ser usados para identificar recursos, e não ações. - Logo ações se fazem necessários no dia-a-dia. E é importante reforçar que não fere os padrões REST.
POST /candidato/{id}/candidatar -- Grava a aplicação de um candidato a uma vaga
POST /candidato/{id}/aprovar -- Aprova um candidato
DELETE /candidato/{id}/aprovar -- Cancela a aprovação
POST /candidato/{id}/reprovar -- Reprova o candidato
DELETE /candidato/{id}/reprovar -- Cancela a reprovação
POST /candidato/{id}/transferir -- Transfere o candidato para outra vaga
DELETE /candidato/{id}/transferir -- Cancela a transferência
- Deve sempre estar no
plural - Como expressar relação definida?
- get
/tickets/12/comments - Quando a URI for muito extensão, não a obrigação de seguir essa forma
- get
Métodos e seus status code de sucesso
GET- sucesso (200)POST- sucesso (201)- Resposta
- Retornar a representação dos dados criados
- Adicionar um
Locationno cabeçalho onde o recurso foi criadoLocal: http://{server_host}/api/employees/123
- Resposta
PUT- sucesso (200)PATCH- sucesso (200)DELETE- sucesso (204)OPTIONS- sucesso (200)HEAD- sucesso (200)
Use nomes descritivos e claros
- Escolha nomes que transmitam claramente o propósito e a funcionalidade do endpoint.
- Evite termos ambíguos ou genéricos. Seja específico e preciso.
Siga as convenções RESTful:
-
Siga os princípios RESTful sempre que possível. Isso inclui o uso de substantivos para representar recursos e métodos HTTP (GET, POST, PUT, DELETE) para representar ações.
-
Por exemplo, use substantivos como
/users/users/{id}para representar uma coleção de usuários e
para um usuário específico.
Use substantivos plurais para coleções:
- Use substantivos no plural para terminais que representam coleções de recursos (por exemplo,
/users/posts). - Use substantivos singulares para pontos finais que representam recursos individuais (por exemplo,
/user/{id}/post/{id}).
Estrutura de URL consistente:
- Mantenha uma estrutura de URL consistente em sua API para facilitar aos desenvolvedores a previsão de padrões de endpoint.
- Para recursos aninhados, use uma hierarquia lógica (por exemplo,
/users/{userId}/posts/{postId}).
Evite verbos em caminhos de endpoint:
- Use métodos HTTP (GET, POST, PUT, DELETE) para indicar ações e manter o caminho do endpoint focado no recurso.
- Por exemplo,
/createprefira/createUserou/addUser
Versionamento:
-
Inclua o controle de versão em sua API para garantir a compatibilidade com versões anteriores à medida que sua API evolui.
-
Por exemplo, use
/v1/userspara a versão 1 do endpoint de usuários.
Use hífens ou sublinhados:
- Escolha um separador consistente para nomes de recursos com várias palavras. As escolhas comuns são hífens (
/user-profiles) ou sublinhados (/user_profiles). - Atenha-se ao separador escolhido em toda a API para obter consistência.
Forneça filtros e parâmetros de consulta para filtragem:
- Permita que os usuários filtrem, classifiquem e paginam os resultados usando parâmetros de consulta em vez de criar endpoints separados para cada variação.
- Por exemplo, use
/users?role=admin/admin-usersem vez de criar um endpoint separado.
Use caracteres minúsculos
Exceto pelo esquema e pelos componentes de host da URL, os URIs geralmente diferenciam maiúsculas de minúsculas. Isso torna muito importante usar o caso certo ao nomear os recursos. A regra geral é sempre usar caracteres minúsculos porque -
- É uma convenção amplamente aceita na indústria e ajuda a manter a consistência entre diferentes APIs.
- As letras minúsculas são geralmente mais fáceis de ler do que as letras maiúsculas, especialmente quando em nomes longos ou URLs.
- Letras minúsculas são mais comuns em URLs e são usadas pelos mecanismos de pesquisa para indexar páginas da web. Portanto, ao usar letras minúsculas em seus endpoints, você pode ajudar a melhorar a descoberta da API nos mecanismos de pesquisa.
Considere hierarquias de endpoint para relacionamentos:
- Represente relacionamentos entre recursos por meio de estruturas hierárquicas em seus endpoints.
- Por exemplo,
/organizations/{orgId}/userspara recuperar usuários de uma organização específica.
Documente sua API:
- Forneça documentação abrangente que explique cada endpoint, a entrada esperada e a saída.
- Inclua exemplos e cenários de uso para ajudar os desenvolvedores a entender como usar sua API de maneira eficaz.