devterview_$ iniciar simulação

Modelar recursos e escolher o verbo HTTP

MédioPlenoModelagem

Pergunta

Como você modela os endpoints de uma API REST em termos de recursos e verbos, e o que fazer com uma operação que não é um CRUD óbvio (ex: 'publicar um artigo')?

Resposta esperada

O caminho identifica um recurso (substantivo, plural): `/artigos`, `/artigos/42`, `/artigos/42/comentarios`. O verbo diz a ação: GET (ler, sem efeito), POST (criar sob a coleção), PUT (substituir o recurso inteiro), PATCH (atualizar parcial), DELETE (remover). Pra ações que não mapeiam num CRUD, duas saídas boas: (1) modelar a ação como um sub-recurso de estado — `PUT /artigos/42/publicacao` ou `POST /artigos/42/publicacao`; (2) tratar como transição e expor o campo de status via PATCH (`PATCH /artigos/42 { status: 'publicado' }`) se as regras permitirem. Evite verbos no caminho (`/artigos/42/publicar`) como reflexo, mas reconheça que pra ações genuinamente RPC-like (`/busca`, `/relatorios:gerar`) forçar REST puro piora a API.

Por que perguntam isso

Pergunta pleno. Resposta forte não é dogmática: reconhece que algumas operações são RPC e que forçar REST puro nelas piora a API.

#rest#recursos#verbos-http
publicidade

Perguntas de acompanhamento

Relacionadas