Dik za odpoved, rad si precitam aj tu doplnenu cast, lebo som nejak
vsetko nepodchytil ... :) v podstate ak som spravne pochopil je len na
mne ci budem parametre predavat pomocou GET alebo POST.

Popripade ak by si mohol uviest nejake zdroje: knihy, best patterns
ktore sa oplati precitat.

Zatial co som cital rozne zdroje (hlavne web) tak mam pocit ze REST je
natolko volny az je z toho miestami anarchia a chaos a kazdy si to
vysvetluje po svojom :)

A ked uz som natrafil na cloveka ktory sa REST-u venuje, by som sa
spytal este na par veci ktore mi nie su uplne jasne:

1) referencia namiesto obsahu

preco sa vo vacsine xml/json suborov uvadza referencia na zdroj na
miesto obsahu ?

napr.

<order ref="http://....";>
        <item ref="http://server/item/1"/>
        <item ref="http://server/item/2"/>
        <item ref="http://server/item/3"/>
</order>

a nie uplny obsah napr:

<order number="abc" id="123">
        <item>
                <id>1</id>
                <catalogNumber>a123</catalogNumber>
                <price>12,55</price>
                ...
        </item>
        ...
        <item>
        </item>
</order>
Mi pripada logicke nacitat viac udajov naraz, ako sa potom dotazovat na
kazdy zaznam po jednom requeste (teda aspon mam pocit ze by to mohlo byt
rychlejsie :).

2) navratove kody operacii
Tu su znova dve moznosti, bud budem vracat vysledok kazdej operacie ako
HTTP status code/header (404-Not found, 200-Ok, 201-Created,
202-Accepted,...) alebo ako XML subor typu:

<response code="error">
        <error>resource not found</error>
</response>

alebo dokonca ako kombinaciu HTTP status code a XML

3) protokol

> HTTP je pouze jendim z RESTovych protokolu, ktery se typicky
> pouziva jako transportni protokol pro jiny RESTovy protokol.

existuje aj nejaky iny protokol ktory sa realne pouziva ?



No na dalsie veci sa radsej spytam nabuduce ;)

RM

On Mon, 2008-08-18 at 11:07 +0200, Oto Buchta wrote:
> Tvuj problem je v nekolika omylech, ktera prameni z chyru kolem RESTu:
> a) REST != CRUD . REST je o definici maleho mnozstvi operaci nad vsemi
>   zdroji daneho systemu. Jako priklad uvedu HTTP operace HEAD a OPTIONS.
> b) REST != HTTP . HTTP je pouze jendim z RESTovych protokolu, ktery se typicky
>   pouziva jako transportni protokol pro jiny RESTovy protokol.
> c) URI nereprezentuje presnou datovou podobu zdroje pro READ operace.
>   URI reprezentuje zdroj jako takovy. Kazda operace muze byt parametrizovana.
>   Podstatne je, aby opakovane READ operace na stejny zdroj vracely byt ruzne,
>   ale semanticky shodne reprezentace zdroje. Jako priklad opet uvedu onu
>   HTTP operaci HEAD, ktera vraci pouze "metadata" zdroje. Dalsim prikladem
>   z HTTP je moznost rict si o preferovany jazyk vysledku.
> 
> Co z toho plyne?
> 
> Zaved si pro kazdy typ zdroje jejich kolekci, na teto kolekci zaved operaci
> QUERY (nebo FILTER, jak chces) a tato operace bude mit logicky dva parametry:
> 1) URL kolekce
> 2) vlastni query
> 
> Pak uz zalezi ciste na tobe, jaky udelas binding na HTTP. Muzes pouzit query
> string GETove operace (ta je mimochodem taky dvouparametrova, URL
> a QUERY_STRING, pricemz druhy parametr je nepovinny) nebo POST a query posilat
> v datech. 
> 
> Na http://tapikuv.blogspot.com/2008/08/orestoven-dotazy.html to zkusim behem
> tydne trochu vic rozvest.
> 
> On Sat, Aug 16, 2008 at 02:25:03PM +0200, Richard Mihalovič wrote:
> > 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