2010-10-28 6 views
9

Ich sitze auf einigen REST lesen mit meinen Kollegen Teamkollegen, wir schreiben eine RoR-Anwendung, die einige der Funktionalität des Rests der Welt offen legen wird.REST GET Verb mit Parametern

Meine Aufgabe in diesem Team besteht darin, eine Ressource zu erstellen, die Journalberichte verfügbar macht. Wenn Sie

rufen

http://root.com/journalreports

Sie sollten alle journalreports aus dem Dienst bekommen. Das funktioniert wie ein Zauber, aber ich bin verwirrt darüber, wie man eine Ressource erstellt, die eine Reihe von Journalberichten freilegt. Soll ich es machen

http://root.com/journalreports?range=1/2/2010;5/2/2010

Oder ist dies illegal, wenn wir über REST sprechen wegen der? Range = Störung?

Was ist der beste Weg, um eine REST-Ressource einige Parameter zu geben?

Antwort

14

Parameter sind vollkommen in Ordnung, besonders für Suchressourcen wie in Ihrem Fall (Abfragen einer Reihe von Zeitschriften).

I recently answered ähnliche Frage (Pfad vs. Parameter)

+0

Danke für den Link !! Das hat mir sehr geholfen, weil der Link http://labs.apache.org/webarch/uri/rfc/rfc3986.html#query – mslot

+0

ich wegen des Links, der mir geholfen hat, akzeptiert habe. – mslot

6

REST macht den Abfrageparameter in keiner Weise "illegal". Es ist ein architektonischer Stil, der hauptsächlich darauf abzielt, die Anwendung durch den Austausch von Darstellungen zu steuern. Wenn man betrachtet, dass URIs undurchsichtig sind, gibt es keinen wirklichen Unterschied zwischen http://example.com/page/1 und http://example/?page=1, was REST betrifft (hängt letztlich von den Repräsentationen ab, die gesendet werden, aber die Wahl oder der URI-Stil ist eher ein Implementierungsdetail) .

Entscheidend ist, wie der Client die URIs Ihrer Berichte ermitteln soll. HTML kann dies sehr gut mit Formularen und Abfrageparametern tun. Ob Ihr Dienst für die Browser-Nutzung oder ein anderer Agent wirklich wichtig ist, können Sie die gleichen Prinzipien verwenden. Sie könnten HTML-Formulare haben (oder äquivalent, wenn Ihr Client kein Browser ist), wenn Sie flexibler sein möchten oder über explizite Links auf Ihrer Startseite. (Sie können den Bereich in zwei Parameter aufteilen, wie "von" und "zu", wenn Sie dynamischer sein möchten.)

+1

Ich dachte eigentlich, dass solche "php Stil" illegal war, als REST tun. Aber vielleicht habe ich etwas falsch gelesen, als ich einige Artikel überflogen habe? – mslot

+1

@mslot was macht Abfrage String "PHP-Stil"? Ich denke, die Sprache, mit der eine Anwendung implementiert wird, schließt sich gegenseitig aus, wie die Anwendung URIs interpretiert und verwendet. – Todd

Verwandte Themen