Aus der Sicht des API-Kunden sollten die Endpunkte vorhersehbar sein, damit
Idealerweise...
GET /resources
sollte eine Liste von Ressourcen zurückgeben.
GET /resource
sollte einen Statuscode der Stufe 400 zurückgeben.
GET /resources/id/{resourceId}
sollte eine Sammlung mit einer Ressource zurückgeben.
GET /resource/id/{resourceId}
sollte ein Ressourcenobjekt zurückgeben.
POST /resources
sollte Ressourcen im Stapelverfahren erstellen.
POST /resource
sollte eine Ressource erstellen.
PUT /resource
sollte ein Ressourcenobjekt aktualisieren.
PATCH /resource
sollte eine Ressource aktualisieren, indem nur die geänderten Attribute gebucht werden.
PATCH /resources
sollte eine Stapelaktualisierung von Ressourcen vornehmen, die nur die geänderten Attribute verbucht.
DELETE /resources
sollte alle Ressourcen löschen; nur ein Scherz: 400 status code
DELETE /resource/id/{resourceId}
Dieser Ansatz ist der flexibelste und funktionsreichste, aber auch der zeitaufwändigste in der Entwicklung. Wenn Sie es also eilig haben (was bei der Softwareentwicklung immer der Fall ist), nennen Sie Ihren Endpunkt einfach resource
oder die Pluralform resources
. Ich bevorzuge die Singularform, weil sie Ihnen die Möglichkeit gibt, sich selbst zu untersuchen und programmatisch zu bewerten, da nicht alle Pluralformen auf "s" enden.
Aus welchen Gründen auch immer haben sich die Entwickler für die Verwendung der Pluralform entschieden, die am weitesten verbreitet ist. Dies ist letztendlich der Weg, den ich gewählt habe, und wenn Sie sich beliebte Apis wie github
y twitter
Dies ist ihre Aufgabe.
Einige Entscheidungskriterien könnten sein:
- Welche Zeitvorgaben habe ich?
- Welche Operationen werde ich meinen Verbrauchern erlauben?
- Wie sieht die Nutzlast von Anfrage und Ergebnis aus?
- Möchte ich in der Lage sein, Reflection zu verwenden und den URI in meinem Code zu analysieren?
Es liegt also an Ihnen. Was immer Sie tun, seien Sie konsequent.