Dik za odkazy. Som sa pozeral na proposal JSR-311, som bol zvedavy ako je riesena klientska cast pristupu k RESTu, tak som si pozrel tento dokument a som nasiel tuto cast:
JAX-RS: JavaTM API for RESTful Web Services Proposed Final Draft August 1, 2008 Non-Goals: Client APIs The specification will not define client-side APIs. Other specifications are expected to provide such functionality. Da sa pomocou Jersey pristupovat ako klient k REST zdrojom, alebo si to treba naprogramovat vlastnymi silami? Napr. Restlet ma rozhranie pre pristup k REST zdrojom ako klient, aj ked binding a osetrovanie chybovych stavov treba robit vo vlastnej rezii. napr. client = new org.restlet.Client(org.restlet.data.Protocol.HTTP); response = client.post(url, content); RM On Tue, 2008-08-19 at 17:30 +0200, Jakub Podlesak wrote: > On Mon, Aug 18, 2008 at 11:51:15PM +0200, Richard Mihalovič wrote: > > 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. > > Vyplati se IMHO podivat se i po inetu, kde se daji > najit napr. clanky [1], [2]. > > Pro "vytrvalejsi" zajemce o REST je urcite uzitecna konference na yahoo > groups [3] > > No a protoze jsme na java listu, urcite nesmim vynechat link > na prislusnou specifikaci JSR-311 [4], a referencni implementaci > -- projekt Jersey [5]. > > ~Jakub > > [1]http://www.infoq.com/articles/rest-introduction > [2]http://exyus.com/articles/rest-the-short-version/ > [3]http://tech.groups.yahoo.com/group/rest-discuss/?v=1&t=search&ch=web&pub=groups&sec=group&slk=2 > [4]http://jsr311.dev.java.net/ > [5]http://jersey.dev.java.net/ > > > > > > 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 > > >
