2010-10-28 13 views
9

Siedzę czytając na REST z kolegami z zespołu, piszemy aplikację RoR, która ujawni część swojej funkcjonalności reszcie świata.REST GET czasownik z parametrami

Moim zadaniem w tym zespole jest wykonanie ressource, które udostępnia raporty z dziennika. Jeśli zadzwonisz

http://root.com/journalreports

Należy uzyskać wszystkie journalreports z usługi. To działa jak czar, ale jestem zdezorientowany, jak prawidłowo utworzyć ressource, który eksponuje szereg raportów dziennika. Powinienem zrobić to

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

Albo jest to niezgodne z prawem, gdy mówimy o odpoczynku, bo z? Range = ingerencji?

Jaki jest najodpowiedniejszy sposób przyznania REST ressource niektóre parametry?

Odpowiedz

14

Parametry są całkowicie poprawne, szczególnie w przypadku zasobów wyszukiwania, takich jak case (wyszukiwanie zestawu dzienników).

I recently answered podobne pytanie (ścieżka porównaniu parametrów)

+0

Dzięki za link !! Bardzo mi to pomogło ze względu na link do http://labs.apache.org/webarch/uri/rfc/rfc3986.html#query – mslot

+0

Zaakceptowałem to ze względu na link, który pomógł mi. – mslot

6

REST nie czyni w żaden sposób parametru zapytania "nielegalnym". Jest to styl architektoniczny, głównie o sterowaniu aplikacją poprzez wymianę reprezentacji. Biorąc pod uwagę, że identyfikatory URI mają być nieprzejrzyste, nie ma rzeczywistej różnicy między wartościami http://example.com/page/1 i http://example/?page=1, jeśli chodzi o REST (ostatecznie zależy to od wysłanych reprezentacji, ale wybór lub styl URI jest raczej szczegółem implementacji) .

Ważne jest, w jaki sposób klient dowie się o identyfikatorach URI raportów. HTML może to zrobić bardzo dobrze z parametrami formularzy i zapytań. Niezależnie od tego, czy twoja usługa jest przeznaczona do korzystania z przeglądarki czy innego agenta, nie ma to znaczenia, możesz użyć tych samych zasad. Możesz mieć formularze HTML (lub ich odpowiednik, jeśli klient nie jest przeglądarką), jeśli chcesz, aby był bardziej elastyczny lub za pośrednictwem linków na stronie głównej. (Może się okazać, że łatwiej jest podzielić zakres na dwa parametry, np. "Od" i "do", jeśli chcesz, aby było to bardziej dynamiczne.)

+1

I rzeczywiście myślał, że takie „php styl” było nielegalne, gdy robi resztę. Ale może przeczytałem coś złego, kiedy przeglądałem jakieś artykuły? – mslot

+1

@mslot co tworzy łańcuch zapytania "styl php"? uważam, że język, w którym aplikacja jest wdrażana, wyklucza wzajemnie sposób interpretacji i korzystania z URI. – Todd