2010-10-28 3 views
9

Sono seduto leggendo po 'di riposo con i miei compagni di squadra, stiamo scrivendo un'applicazione RoR che sta per esporre alcune delle sue funzionalità per il resto del mondo.REST GET verbo con i parametri

Il mio compito in questa squadra è quello di fare un ressource che espone i rapporti del journal. Se si chiama

http://root.com/journalreports

Si dovrebbe ottenere tutte le journalreports dal servizio. Questo funziona come un incantesimo, ma sono confuso su come creare correttamente una risorsa che espone una vasta gamma di pubblicazioni giornalistiche. Dovrei farlo

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

O è illegale quando si parla di riposo a causa del? Gamma = interferenze?

Qual è il modo più corretto di dare un REST ressource alcuni parametri?

risposta

14

I parametri sono perfettamente OK, specialmente per le risorse di ricerca come nel tuo caso (interrogando un insieme di riviste).

ho recently answered domanda simile (percorso vs. parametro)

+0

Grazie per il link !! Questo mi ha aiutato molto a causa del link a http://labs.apache.org/webarch/uri/rfc/rfc3986.html#query – mslot

+0

Ho accettato questo a causa del collegamento che mi ha aiutato. – mslot

6

REST non rende il parametro di query "illegale" in alcun modo. È uno stile architettonico, principalmente per guidare l'applicazione scambiando le rappresentazioni. URI Considerando sono destinate ad essere opaco, non c'è differenza tra http://example.com/page/1 e http://example/?page=1 per esempio, per quanto RIPOSO concerne (in definitiva dipende dalle rappresentazioni che vengono inviati, ma la scelta o stile URI tende ad essere un dettaglio implementativo) .

ciò che conta è come il cliente sta andando a scoprire le URI dei vostri rapporti. HTML può farlo molto bene con moduli e parametri di query. Se il tuo servizio è per il consumo del browser o un altro agente non ha molta importanza, puoi usare gli stessi principi. Potresti avere moduli HTML (o equivalenti se il tuo client non è un browser) se vuoi che sia più flessibile o tramite link espliciti sulla tua pagina principale. (Potresti scoprire che è più semplice dividere l'intervallo in due parametri, come "da" e "a", se vuoi che sia più dinamico.)

+1

Ho effettivamente pensato che tale "stile php" era illegale quando si fa REST. Ma forse ho letto qualcosa di sbagliato quando ho sfogliato alcuni articoli? – mslot

+1

@mslot cosa rende la stringa di query "stile php"? Penso che il linguaggio con cui un'applicazione viene implementata si escluda a vicenda da come l'applicazione interpreta e fa uso di URI. – Todd