Zdravim konfereneciu

Zacinam s REST a zakladne principy som snad pochopil (CRUD ->
POST,GET,PUT,DELETE). Ale neviem presne ako realizovat filtrovanie
zaznamov.

Napriklad:
 mam zoznam uzivatelov ktory maju polozky: age, firstName, lastName,
atd. Ak chcem nacitat vsetky zaznamy tak dam GET request na adr.
'http://adresa.server/users' vrati mi zoznam vsetkych uzivatelov. Ale ak
by som chcel filtrovat zaznamy podla kriterii napr:
    firstName='James' AND lastName!='Bond' OR age>40
Akym sposobom sa dotazovat k tymto zaznamom ? Napadaju ma nasedovne
sposoby:

1) cely dotaz dat do URL:

http://adresa/users/search/v1,s1,c1,o1: ... :vn,sn,cn,o1/orderby/xyz/...

n=1..m
vn - variable, napr: 'firstName' 
sn - string, napr: 'James'
cn - condition, napr. 'eg' = equals, 'gt' = greater than, ...
on - operator, napr. 'a' = AND, 'o' = OR

V tomto pripade by sa cely dotaz zapisal do URL a po zavolani GET
request by sa vratil vyfiltrovany obsah. Tento sposob mi pripada asi
najviac RESTful, ale ta url by bola asi dost dlha v niektorych
pripadoch.

2) dotaz zakodovat do XML

<query orderby="...">
        <filter variable="..." string="..." condition="..." operator="..." />
        <filter variable="..." string="..." condition="..." operator="..." />   
</query>

V tomto pripade by sa muselo XML asi poslat cez request POST alebo PUT a
nasledne spracovat, ale metody POST, PUT sluzia na ine ucely a asi to
nie je 'validne' REST riesenie.

3) nejak inak :) rad sa necham poucit ...


RM

Odpovedet emailem