Ich habe mich gefragt, ob und nicht ein traditionelleres Layout wie dieses:
api/Products
GET // gets product(s) by id
PUT // updates product(s) by id
DELETE // deletes (product(s) by id
POST // creates product(s)
Wäre es sinnvoller, einen Singular und einen Plural zu haben, zum Beispiel:
api/Product
GET // gets a product by id
PUT // updates a product by id
DELETE // deletes a product by id
POST // creates a product
api/Products
GET // gets a collection of products by id
PUT // updates a collection of products by id
DELETE // deletes a collection of products (not the products themselves)
POST // creates a collection of products based on filter parameters passed
So erstellen Sie eine Sammlung von Produkten:
POST api/Products {data: filters} // returns api/Products/<id>
Und dann, um darauf zu verweisen, könnten Sie Folgendes tun:
GET api/Products/<id> // returns array of products
Meiner Meinung nach besteht der Hauptvorteil dieser Vorgehensweise darin, dass Produktkollektionen einfach zwischengespeichert werden können. Man könnte zum Beispiel eine Lebensdauer von einer Stunde für Produktkollektionen festlegen, wodurch die Anrufe auf einem Server drastisch reduziert werden. Natürlich sehe ich derzeit nur die gute Seite der Dinge auf diese Weise. Was ist der Nachteil?
Der Nachteil ist, dass das aufrufende Programm auch den Ressourcennamen pluralisieren muss, was für Client-Sprachen, die keine integrierten Pluralisierungsmechanismen haben, schwierig sein kann. Wenn Sie es singulär lassen, ist es für den Anrufer einfacher, die Codegenerierung für seine Client-Bibliothek zu automatisieren.
Wenn Sie dies abmildern möchten, können Sie die SDKs für Ihren REST-Service selbst generieren. Oder Sie können einfach eine Meinung haben und sich mit der Beschwerde befassen :)
quelle