2017-04-09 2 views
0

Ich habe solche Modelle auf einer Website: Organization, Client und Comment.REST api Eins-zu-viele tiefe Beziehung

kann ein Organization viele haben Clients, ein Client-Organization gehört, kann ein Client viele Comments haben, ein Comment einem Client gehört.

Offensichtlich ist Client nicht eine erstklassige Ressource, so dass ich erstellen Update und bekommen es durch eine Organization wie:

POST/organizations/:org_id/clients - Erstellen Sie eine Client PUT/organizations/:org_id/clients/:client_id - Aktualisiere einen Client, eine und so weiter

Aber was sollte meine Route sein, wenn ich eine Comment zu einer Client hinzufügen möchte?

Sollte es

POST/organizations/:org_id/clients/:client_id/comments

oder

POST/clients/:client_id/comments

oder

POST/comments

Antwort

0

In vielen Fällen REST-Schnittstelle ahmt die Datenstruktur sein.

Da Sie Kommentare haben, die zu einem Client gehören, ist Ihre interne Datendarstellung höchstwahrscheinlich eine Tabelle, wobei der Primärschlüssel die Kommentar-ID und der Fremdschlüssel die Client-ID ist. Es hat nichts mit Kunden zu tun, die zu einer bestimmten Organisation gehören. daher

POST/clients/:client_id/comments 

Wenn später würden Sie einen Kommentar bearbeiten möchten, die

PUT/clients/:client_id/comments/:comment_id 

Theoretisch wäre, kann man sogar die client_id bewegen Teil der Post-Parameter zu sein, aber in diesem Fall werden Sie Sie verlieren den richtigen Weg, um alle Kommentare für einen bestimmten Kunden aufzulisten.