web-dev-qa-db-fra.com

Quelle est la bonne façon de nichier des ressources dans REST modèle?

Je concevons un REST API de service et êtes-vous coincé de manière appropriée pour nidifier les ressources.

Ressources: Partenaires, billets, paramètres

Connexions entre ressources:

  • partenaire a beaucoup de billets,
  • partenaire a un ensemble de paramètres,

Logic Bussines:

  • vous pouvez répertorier tous les partenaires comme utilisateur anonyme,
  • vous pouvez ajouter un nouveau ticket à un partenaire spécifié comme utilisateur anonyme,
  • seul partenaire peut lister ses billets,
  • seul partenaire peut modifier ses billets,
  • seul partenaire peut répertorier les paramètres,
  • seul partenaire peut modifier les paramètres,

Ce que j'ai fait jusqu'à présent:

Ressources partenaires

Obtenir/Partners - Énumérez tous les partenaires
[.____] Obtenir/Partners /: ID - Afficher les détails du partenaire spécifié par: paramètre ID
[.____] Obtenir/Partners /: Partner_id/Billets - Liste des billets de partenaire
Obtenir/Partners /: Partner_ID/Billets /: ID - Détails du billet du partenaire spécifié
Post/Partners /: Partner_id/Billets - Enregistre un nouveau ticket
Met/Partners /: Partner_Id/Billets /: ID - Met à jour le billet spécifié par: paramètre ID
[.____] Obtenir/Partners /: Partner_ID/Paramètres - Paramètres du partenaire de la liste
[.____] Met/Partners /: Partner_id/Paramètres - Paramètres de la mise à jour de la mise à jour

problème/question

Serait-il un moyen approprié de diviser les ressources imbriquées (billets, paramètres) pour séparer les ressources ou les dupliquer comme des ressources séparées?

Par exemple.

Obtenir/Billets /: ID
Post/billets
MIS/BILLETS /: ID

Obtenir/Paramètres
Met/Paramètres

14
Przemek

HATEOAS :

GET /partners/:partner_id/tickets - Liste des billets de partenaire, c'est-à-dire renvoyer une liste d'URIS, probablement du formulaire /tickets/:id

GET /partners/:partner_id/tickets/:id - pas besoin

POST /partners/:partner_id/tickets - crée un ticket et des associés au partenaire, renvoie une nouvelle URI avec la nouvelle URI, du formulaire /tickets/:id

8
Javier