REST url-Pfad-parameter Namenskonventionen
Gibt es irgendwelche Namenskonventionen für generische parameter-Namen in der REST-url?
In meinem Beispiel möchte ich, um die Adresse einer Abteilung auf der Grundlage der Abteilungs-ID oder die organisation, die ID, unter der die Abteilung kommt unter.
Also die URL-Pfad-parameter name deptOrOrgId - ist es gültig, basierend auf den Namenskonventionen oder
sollte ich einen Allgemeinen Namen wie sectionID oder officeID oder etwas zu repräsentieren sowohl die Abteilungs-ID als auch als Organisations-ID?
Dank.
- Tun werden einige check basiert auf der deptOrOrgId? Wie einige Funktion, wenn es departmentID und etwas anderes tun, wenn seine OrganisationID
- es ist rein, um die Adresse einer Abteilung. ex, um die Adresse zu bekommen von einer IT-Abteilung die Id der IT-Abteilung ist genug. Wenn die ID der organisation gegeben ist, dann habe ich, um die Liste der Abteilungen und finden die IT-Abteilung und die IT-Abteilung-Adresse. so meine url-parameter akzeptieren soll, departmentId oder organisationId, um wieder eine Abteilung Adresse.
- Der standard-Weg, dies zu behandeln ist, um eine Konstante url
http://hostname/[contextpath]/get?departmentId=[x]&organisationId=[y]
auf der Grundlage der verfügbaren Wert in departmentId und organizationId, müssen Sie behandeln diese in Ihrer Umsetzung wie Sie im obigen Kommentar.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein zusätzliches paar von Konventionen in Bezug auf links und Pfade design in REST-APIs, die helfen könnten:
1. Pfad Params vs Query-String
/parent/child1;child2
) sind cool, aber-query-strings Ausdrücken können, so viel wie Pfad, params können, sind standard und explicit. ex:/parent?id=child1&id=child2
/parent?id=child1;child2
...etc2. Plural oder singular
Verwendung von Pluralformen für jede Sammlung (oder-Tabelle oder-Ordner) ist gut, da es bedeutet, dass die Ressource ist eine Liste von anderen Ressourcen
/users
,/users/user1
,/users?active=true
Nesting-Ressource : Standardmäßig ohne Schachteln, es sei denn, es gibt eine starke Beziehung
Wenn ein Kandidat untergeordnete Ressource vorhanden sein können, unabhängig von den Eltern, es gibt keinen Punkt, in Schachteln, weil Sie könnte Ende-up mit mehrere Pfade für die selbe Sache :
/departments/{departments}/employees/{employee}
/branch-offices/{branch}/employees/{employee}
/employees/{employee}
Mit letzterem können Sie all den rest :
/employees?department={department}
/employees?branch={branch}
3. Verwenden Sie nisten nur auf starke Beziehungen
Wenn die geschachtelte Ressource nicht existiert außerhalb der Eltern (Zusammensetzung in der UML-Begriffe, zum Beispiel)
/books/{book}/pages/{page}
Du wäre schauen nie für eine Seite ohne die Angabe eines Buches/players/{player}/stats}
(wieder, es hängt davon ab, Ihre domain-Modelle)4. Naja ok... verschachtelte Pfade, die auf nicht so starke Beziehungen zu, sondern behandeln diese als Aliase
Natürlich möchten Sie vielleicht zu tun verschachteln, auch wenn es keine starke Beziehung, oder gebunden resource lifecycle (Abteilung/Mitarbeiter Beispiel) für einige Grund (DX, Lesbarkeit vielleicht ?). wenn Sie das tun, vielleicht sollten Sie die verschachtelten Pfad ein alias nur :
/departments/{department}/employees
/employees?department={department}
5. Wenn Sie möchten, HATEOAS, dann Weg design sollte nicht die oberste Priorität
Auf der anderen Seite, client Lesbarkeit ist nicht wichtig, wenn Sie wollen, Sie zu umarmen, REST ist HATEOAS. API-clients sollten nicht erraten, Ihren links oder Ihren Vorlagen hartcodiert. Stattdessen API enthält links, die den Kunden Folgen. Beispiel:
Den root-Pfad könnte zum Beispiel eine Liste aller primären links:
Die links sind absichtlich hässlich in diesem Beispiel. Die eine formschlüssige Mitarbeiter ist eigentlich ein URL-Vorlage mit optionalen Parametern.
Die client-API dann aussieht, für den link mit Schlüssel
employee
(in diesem Fall /url-für-Arbeitnehmer) — unabhängig davon, was es sieht aus und nennt es:Beachten Sie den Link-header enthält 2 links, einen für die Suche
und, um die nächste Seite der Mitarbeiter (rel=next").
Vorteile HATEOS sind out-of-scope-hier aber mindestens eine ist, dass Sie frei sind zu re-organisieren Sie Ihre Pfade, ohne zu brechen-API-clients
5. Letzte, versuchen, die Dinge auf Ihr Dateisystem
Könnte man die Datei system Skizze/mock einen Erholsamen API:
Ordner erstellen, Dateien (und vielleicht auch Verknüpfungen/Aliase/Verknüpfungen) auf Ihre Festplatte, wechseln, ändern, waschen, Spülen und wiederholen, bis Ihr zufrieden mit der Struktur 🙂
Überprüfen Sie den Abschnitt Ressourcen-URI-Beispiele
Namenskonvention Tutorial. Hoffe du bekommst deine Antwort.
Auch diese buchen definiert drei grundlegende Regeln für das url-design, das handeln als ein guter Ausgangspunkt:
Anderen Leitlinien umfassen: