Estou projetando uma API de serviço REST e fiquei preso na maneira correta de aninhar recursos.
Recursos: parceiros, tickets, configurações
Conexões entre recursos:
- parceiro tem muitos tickets,
- o parceiro definiu configurações,
Lógica de negócios:
- você pode listar todos os parceiros como usuário anônimo,
- você pode adicionar um novo ticket ao parceiro especificado como usuário anônimo,
- único parceiro pode listar seus ingressos,
- único parceiro pode modificar seus tickets,
- somente o parceiro pode listar configurações,
- somente o parceiro pode modificar configurações,
O que eu fiz até agora:
Recursos para parceiros
GET / partners - lista todos os parceiros
GET / partners /: id - mostra detalhes do parceiro especificado por: id parameter
GET / partners /: partner_id / tickets - lista de tickets do parceiro
GET / partners /: partner_id / tickets /: id - detalhes do ticket do parceiro especificado
POST / partners /: partner_id / tickets - salva novo ticket
PUT / partners /: partner_id / tickets /: id - atualiza o ticket especificado por: id parameter
GET / partners /: partner_id / settings - lista as configurações do parceiro
PUT / partners /: partner_id / settings - atualiza as configurações do parceiro
Problema / Pergunta
Seria a maneira correta de dividir recursos aninhados (tickets, configurações) para separar recursos ou duplicá-los como recursos separados?
Por exemplo
GET / tickets /: id
POST / tickets
PUT / tickets /: id
GET / configurações
PUT / configurações