REST ist über Ressourcen. Welche Ressource wird Ihre Abfrage zurückgeben? Eine Reihe von Daten? Wie wird das festgelegt? Wie ist es parametrisiert? Dies sollte die URL, die Sie mit der GET-Operation verwenden würde:
GET /customers would retrieve all customers
GET /customers?q=<query> would retrieve all customers matching the query
EDIT: Die folgenden nicht ganz so klar für mich
Nachdenken über die Abfrage als etwa das Abrufen einer Ressource, die ist eine Reihe von Kunden (zum Beispiel), begann ich über gut definierte Teilmengen der Menge aller Kunden zu fragen. Betrachten Sie Dinge wie:
GET /customers/state/MA Retrieve all customers in Massachusetts
GET /customers/country/UK All in the UK
GET /customers/country/UK/postalcode/001-234 All in that postal code in the UK
Ressourcen wie diese ergeben für mich als klar identifizierte Ressourcen, und nicht als Abfragen. Ich würde weiterhin eine Abfragezeichenfolge verwenden, um eine beliebige Gruppe von Kunden abzurufen, aber bei einer natürlichen Partitionierung von Kunden kann ich dies im URL-Bereich angeben.
Es sei daran erinnert, dass die GET-Operation für idempotente Operationen gedacht ist und Caching fördern soll. Die Antwort auf diese Abfragen sollte eine angemessene Zwischenspeicherung ermöglichen (vielleicht einen Tag). Dies würde es einer Client-Maschine oder einem Proxy-Server ermöglichen, die Ergebnismenge für einen bestimmten Zeitraum zwischenzuspeichern, wodurch Server-Umlaufvorgänge eingespart werden.
mir scheint dies die offensichtliche Art zu denken über die Abfrage von Ressourcen – AwkwardCoder
Lassen Sie uns wissen, ob das für Sie nicht funktioniert. Ich bin kein "Fan" von REST, aber das "R" in "REST" als "Ressource" zu denken ist der einzige Weg, den es für mich sinnvoll macht. –
bevorzugen Sie einen SOAP-Service? – AwkwardCoder