O documento fornece diretrizes para o projeto e implementação de APIs RESTful com C#, cobrindo tópicos como uso correto de verbos HTTP, status codes, versionamento, segurança, documentação e ferramentas.
9. Do:
Use GETs para retornar dados.
Use PUTs/POSTs para alterar dados.
Use a mesma estrutura de endpoints em toda api.
Escolha alguns status code para utilizar e manter a consistência em toda api.
Don’t:
Use status code de uma maneira não esperada. Se você irá retornar uma lista de
posts, não retorne um 404 caso não exista nenhum post, retorne uma lista vazia.
Use GETs para alterar dados ou PUTs/POSTs para somente retornar dados.
Mensagens de erro para descrever condições.
Consistência
11. VERBOS HTTP
GET /posts - Lista de posts
GET /posts/12 - Post especifico
POST /posts - Cria um novo post
PUT /posts/12 - Atualiza o post #12
PATCH /posts/12 - Atualiza parcialmente o post #12
DELETE /posts/12 - Remove o post #12
12. Ações diferentes de um CRUD
Curtir um post
PUT /posts/:id/like
DELETE /posts/:id/like
Favoritar um post
PUT /posts/:id/star
DELETE /posts/:id/start
14. Status Code
200 OK - Resposta de sucesso de um GET, PUT, PATCH ou DELETE. Pode ser utilizado para um POST que não crie
uma entidade.
201 Created - Resposta para um POST que cria uma entidade. Pode ser combinado com um header location
204 No Content - Resposta de uma request que teve sucesso, que não possua retorno (DELETE request)
304 Not Modified - HTTP caching headers
400 Bad Request - Request mal formada
401 Unauthorized - Autenticação inválida.
403 Forbidden - Quando a autenticação funciona, mas o usuário não tem acesso ao recurso.
404 Not Found - Quando aquele recurso não existe
405 Method Not Allowed - Quando um verbo HTTP está sendo utilizado por um usuário que não tem a
permissão (DELETE por exemplo)
429 Too Many Requests - Rate limite