Was ist die "RESTful" -Methode, um einem RESTful-Service Nicht-CRUD-Operationen hinzuzufügen? Angenommen, ich habe einen Dienst, der CRUD den Zugriff auf Datensätze wie diesen ermöglicht:
GET /api/car/123 <- Returns information for the Car object with ID 123
POST /api/car <- Creates a new car (with properties in the request)
PUT /api/car/123 <- Updates car 123 (with properties in the request)
DELETE /api/car/123 <- Deletes car 123
POST /api/car/123/wheel/ <- Creates a wheel and associates it to car 123
Wenn ich die Farbe des Autos ändern möchte, würde ich einfach POST /api/car/123eine POST-Variable für die neue Farbe einfügen.
Angenommen, ich möchte ein Auto kaufen, und dieser Vorgang ist komplizierter als das einfache Aktualisieren der Eigenschaft "Eigenes Auto" eines "Benutzer" -Datensatzes. Ist es RESTful, einfach so etwas zu tun POST /api/car/123/purchase, bei dem "Kauf" im Wesentlichen ein Methodenname ist? Oder sollte ich ein benutzerdefiniertes HTTP-Verb verwenden, wie PURCHASEanstelle von POST?
Oder liegen Nicht-CRUD-Operationen vollständig außerhalb des Bereichs von REST?
PATCH /api/car/123, einen Farbparameter zu verwendenPUT /api/car/123und zu senden ODER das gesamte Autoobjekt zu verwenden und zu senden. POST würde schließen, dass Sie ein neues Auto erstellen und sollte wahrscheinlich nie eine ID am Ende der URL