Ich bin auf der Suche nach einer vernünftigen Möglichkeit, Suchen als RESTful URLs darzustellen.
Der Aufbau: Ich habe zwei Modelle, Autos und Garagen, wobei Autos in Garagen sein können. Meine URLs sehen also so aus:
/car/xxxx
xxx == car id
returns car with given id
/garage/yyy
yyy = garage id
returns garage with given id
Ein Auto kann allein stehen (daher das /car), oder es kann in einer Garage stehen. Wie kann man nun alle Autos in einer bestimmten Garage darstellen? Etwa so:
/garage/yyy/cars ?
Wie wäre es mit der Vereinigung der Autos in Garage yyy und zzz?
Wie kann man eine Suche nach Autos mit bestimmten Eigenschaften richtig darstellen? Sprich: Zeige mir alle blauen Limousinen mit 4 Türen:
/car/search?color=blue&type=sedan&doors=4
oder sollte es stattdessen /cars heißen?
Die Verwendung von "Suche" scheint hier unangebracht zu sein - was ist ein besserer Weg / Begriff? Sollte es einfach sein:
/cars/?color=blue&type=sedan&doors=4
Sollten die Suchparameter Teil des PATHINFO oder QUERYSTRING sein?
Kurz gesagt, ich suche eine Anleitung für die modellübergreifende Gestaltung von REST-Url und für die Suche.
[Update] Ich mag Justins Antwort, aber er deckt nicht den Fall der Suche mit mehreren Feldern ab:
/cars/color:blue/type:sedan/doors:4
oder etwas Ähnliches. Wie kommen wir von
/cars/color/blue
auf den Fall mit mehreren Feldern?
17 Stimmen
Obwohl es auf Englisch besser aussieht, mischen
/cars
y/car
ist nicht semantisch und daher eine schlechte Idee. Verwenden Sie immer den Plural, wenn es mehr als einen Artikel unter dieser Kategorie gibt.5 Stimmen
Dies sind schlechte Antworten. Die Suche sollte Abfragezeichenfolgen verwenden. Abfragezeichenfolgen sind 100% RESTful, wenn sie richtig verwendet werden (dh für die Suche).
2 Stimmen
Auschecken doriantaylor.com/policy/http-url-path-parameter-syntax