Qual è il modo corretto di nidificare le risorse nel modello REST?

14

Sto progettando un'API di servizio REST e sono rimasto bloccato sul modo corretto di nidificare le risorse.

Risorse: partner, ticket, impostazioni

Collegamenti tra risorse:

    Il
  • partner ha molti ticket,
  • partner ha una serie di impostazioni,

Logica di bussole:

  • puoi elencare tutti i partner come utente anonimo,
  • puoi aggiungere un nuovo ticket al partner specificato come utente anonimo,
  • solo i partner possono elencare i suoi ticket,
  • solo il partner può modificare i suoi ticket,
  • solo i partner possono elencare le impostazioni,
  • solo il partner può modificare le impostazioni,

Quello che ho fatto fino ad ora:

Risorse partner

GET / partner - elenca tutti i partner
GET / partner /: id - mostra i dettagli del partner specificato da: parametro id
GET / partner /: partner_id / ticket - elenco dei biglietti del partner
GET / partner /: partner_id / ticket /: id - dettagli del ticket del partner specificato
POST / partner /: partner_id / ticket - salva il nuovo ticket
PUT / partner /: partner_id / ticket /: id - aggiorna il ticket specificato da: parametro id
GET / partner /: partner_id / settings - elenca le impostazioni del partner
PUT / partner /: partner_id / settings - aggiorna le impostazioni del partner

Problema / Domanda

Sarebbe il modo corretto di dividere le risorse nidificate (ticket, impostazioni) per separare le risorse o duplicarle come risorse separate?

per es.

GET / ticket /: id
POST / biglietti
PUT / ticket /: id

GET / impostazioni
PUT / impostazioni

    
posta Przemysław Ciąćka 19.07.2013 - 16:43
fonte

1 risposta

8

HATEOAS :

GET /partners/:partner_id/tickets - elenco dei ticket del partner, ovvero restituisce un elenco di URI, probabilmente della forma /tickets/:id

GET /partners/:partner_id/tickets/:id - non necessario

POST /partners/:partner_id/tickets - crea un ticket e si associa al partner, restituisce un 201 con il nuovo URI, della forma /tickets/:id

    
risposta data 19.07.2013 - 16:58
fonte

Leggi altre domande sui tag