Modelar recursos e escolher o verbo HTTP
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.