Poveite aplikacije z arhitekturo REST Primo Gabrijeli delphimarand
Povežite aplikacije z arhitekturo REST Primož Gabrijelčič delphi@marand. si http: //www. thedelphigeek. com grafika: Flickr / Gamma-Ray Productions
Embarcadero Akademija REST
REST Embarcadero Akademija Urnik 09. 00 – 10. 30 – 11. 00 – 12. 30 REST JSON odjemalci odmor avtentikacija strežniki orodja
Embarcadero Akademija Songsterr REST
REST Embarcadero Akademija REpresentational State Transfer • arhitektura www • prenosni medij • ukazi • podatki • kontrolne informacije • napake = http ukazi = URL + http telo [json, xml] = http header = http status
REST Embarcadero Akademija CRUD REST SQL Create POST [PUT] INSERT Read GET SELECT Update PUT [PATCH] UPDATE Delete DELETE
REST Embarcadero Akademija Podatki • URL fizični strežnik + REST strežnik [API] + resource + parametri • ID je lahko del sredstva http: //www. songsterr. com /a/ra/ songs/byartists. json ? artists=Queen • http: //server/api/people/123/update? age=28
Embarcadero Akademija Http standardi • Upoštevanje statusov • 301 => preusmeritev • Upoštevanje standardov [http headerji] • Vmesni pomnilniki (cache proxy) • Tip podatkov (accept, content-type) • Nabor znakov (accept-charset) REST
Embarcadero Akademija Zakaj REST? • Enostavna implementacija • http nivo obstaja povsod • Io. T • Java. Script • Berljivost • Izraba spletne infrastructure • Strežniki, proxy strežniki, firewalli • Razširjenost strežnikov • Facebook, Twitter, Google, Amazon, Dropbox … REST
Embarcadero Akademija REST Hypermedia as the Engine of Application State GET /account/12345 <? xml version="1. 0"? > <account_number>12345</account_number> <balance currency="usd">100. 00</balance> <link rel="deposit" href="http: //somebank/account/12345/deposit" /> <link rel="withdraw" href="http: //somebank/account/12345/withdraw" /> <link rel="transfer" href="http: //somebank/account/12345/transfer" /> <link rel="close" href="http: //somebank/account/12345/close" /> </account>
Embarcadero Akademija REST Hypermedia as the Engine of Application State GET /account/12345 <? xml version="1. 0"? > <account_number>12345</account_number> <balance currency="usd">-25. 00</balance> <link rel="deposit" href="http: //somebank/account/12345/deposit" /> </account>
Embarcadero Akademija Java. Script Object Notation • key: value, …. key: value { } "person" : { "id" : 123, "name" : "Alice", "age" : Null, "friends" : [42, 177, 13] } REST
Embarcadero Akademija JSON in Delphi • System. JSON [XE 6] • TJSONValue, TJSONObject, … • REST. Json [XE 6] • Tjson. Object. To. Json. String • TJson. To. Object REST
Embarcadero Akademija Odjemalci • http • ICS, Indy, Win. INet, System. Net. Http. Client • REST Client Library [XE 5] • REST. Client, REST. Http. Client, REST. Authenticator. * … • Data. Snap • TDSRESTConnection • [D 10] System. Net. Http. Client REST
Embarcadero Akademija JSON → Data. Set • TRESTResponse. Dataset. Adapter REST
Embarcadero Akademija Avtentikacija • Simple [TSimple. Authenticator] • GET/POST, nešifrirano • Basic [THTTPBasic. Authenticator] • RFC 2617 • Header, BASE 64 • OAuth 1. 0 a [TOAuth 1 Authenticator] • gesla se ne prenašajo • zastarel • OAuth 2 [TOAuth 2 Authenticator] • večina » velikih « (Facebook, Google …) REST
REST Embarcadero Akademija OAuth 2 odjemalec An Overview of OAuth 2 using the REST Client Components http: //embt. co/blog-oauth 2 http 1) Authorization Request 2) Authorization Grant 3) Authorization Grant 4) Access Token 5) Access Token 6) Protected Resource spletni strežnik Resource Owner Authorization Server Resource Server
Embarcadero Akademija Strežniki • Data. Snap • www • Indy, ICS • ORM • m. ORMot REST
Embarcadero Akademija Data. Snap • XE • Enterprise+ • Win 32/64 • VCL/Fire. Monkey • Odjemalci • RAD Studio: Win 32/64, OS X/32, i. OS, Android • Proxy: Android, Black. Berry, i. OS, Windows Phone • Java. Script: brskalniki, naprave • REST: karkoli REST
Embarcadero Akademija REST Data. Set → JSON • TData. Set. RESTRequest. Adapter • github: andrea-magni/TData. Set. RESTRequest. Adapter
Embarcadero Akademija Orodja • REST Debugger • XE 5, source • Postman • Chrome • Fiddler • . NET 2/4 REST
REST Embarcadero Akademija Vprašanja?
- Slides: 22