RESTfull API.

Transkript

RESTfull API.
RESTful API
TAMZ 1
Cvičení 11
REST
Architektura rozhraní navržená pro distribuované prostředí
Pojem REST byl představen v roce 2000 v disertační práci
Roye Fieldinga, zkratka z Representional State Transfer
Rozhraní REST je použitelné pro jednotný a snadný
přístup ke zdrojům (resources)
Zdrojem mohou být data, stejně jako stavy aplikace
Všechny zdroje mají vlastní identifikátor URI
Čtyři základní metody pro přístup k datům
Používají přístup, reprezentovaný zkratkou CRUD
Create (C) – Vytvoření dat
Retrieve (R) – Získání požadovaných dat
Update (U) – Změna, aktualizaci dat
Delete (D) – Smazání dat
Metody jsou implementovány pomocí odpovídajících metod
HTTP protokolu
Adresovatelnost
REST je zaměřen především na zdroje (resources)
Každý zdroj by měl být dosažitelný pomocí jedinečného
identifikátoru URI
Příklad: scheme://host:port/path?queryString#fragment
scheme – protokol (např. HTTP)
host – DNS nebo IP adresa
port – číslo TCP portu
path – virtuální hierarchická struktura
queryString – množina párů klíč=hodnota, oddělených
znakem &
fragment – identifikátor, který označuje nějakou část
zdroje (např. nadpis nebo obrázek)
Metody přístupu ke zdrojům (C, R)
GET (Retrieve)
Určen pro read-only operace
Základní metoda pro přístup ke zdrojům
Například pro načtení seznamu zdrojů nebo obsahu
jednoho zdroje
Lze volat opakovaně se stále stejným výsledkem
POST (Create)
Slouží pro vytvoření dat
Není ve chvíli volání metody znám přesný identifikátor
(zdroj ještě neexistuje)
Používá se domluvený společný identifikátor („endpoint“) S
každým voláním se mění stav daného zdroje/služby
Po odeslání by měl server vrátit návratový kód 201 Created
Metody přístupu ke zdrojům (U, D)
DELETE
Smaže zdroj pomoci volání URI, HTTP metoda DELETE
Volání je obdobné volání metody GET
V praxi bývá někdy problematické
Někdy se nahrazuje metodou POST s parametrem
PUT(Update)
Operace pro změnu zdroje
Podobná operaci vytvoření (create, metoda POST)
Voláme konkrétní URI konkrétního zdroje, který chceme
změnit
Nová hodnota se předává v těle
Obdobně jako u delete bývá v praxi problematická
Stavové kódy
200 OK – požadavek proběhl v pořádku
201 Created – při POST, pokud byl vytvořen nový obsah
204 No Content – požadavek na server proběhne v pořádku, ale
server nic nevrátí
304 Not Modified – pokud nebyl od posledního požadavku změněn
obsah – používá se pro nativní http cache
400 Bad Request – požadavek na server je nějakým způsoben
nečitelný (třeba špatný JSON apod.)
401 Unauthorized – klient není ověřen
403 Forbidden – klient nemá přístup k danému obsahu
404 Not Found – zdroj není nalezen
405 Method Not Allowed – zdroj není dostupný pro tuto metodu.
410 Gone – zdroj není už na téhle adrese dostupný
415 Unsupported Media Type – klient v požadavku na server uvedl
hlavičku Content-Type, kterou server nepodporuje
429 Too-Many Requests – pokud klient překročil maximální počet
požadavků, třeba za den
Reprezentace dat
Klient nepracuje přímo se zdroji ale s jeho reprezentací
Resource může mít různé reprezentace
Záleží na službě, které formáty podporuje
Nejpoužívanější je JSON, XML, RSS, YAML, apod.
Formát definujeme obvykle v URI nebo v http hlavičce
Content-Type.
Příklad v URI: http://server/data.xml
Příklad v http hlavičce: Content-Type: application/xml
Backbone.js
Malý populární generický MVC framework pro psaní
náročnějších HTML5 webových a mobilních aplikací
objektový model s dědičností
REST (REpresentational State Transfer) Sync
Operace nad kolekcemi (POST = Create, GET = Read)
Operace nad modelem (PUT = Update, DELETE = Delete)
Lze využít s jQuery/... k manipulaci s DOM
MVC v Backbone.js
Model reprezentuje jednu datovou entitu, většinou
provázanou s View, které je aktualizováno při každé
změně.
Backbone.View – je ve skutečnosti Controller
Views lze renderovat pomocí jQuery nebo použít template
Úkol (1b) – využití REST API
Využijte ve své aplikaci pro zasílání a zobrazování zpráv
API jednoduché služby, předvedené cvičícím:
Vložení dat (C: metoda POST, zaslán query string):
http://linedu.vsb.cz/~mor03/REST/message
Získání dat (R: metoda GET, vráceno pole objektů):
http://linedu.vsb.cz/~mor03/REST/message
http://linedu.vsb.cz/~mor03/REST/message/2
http://linedu.vsb.cz/~mor03/REST/message/NICK/aaa
http://linedu.vsb.cz/~mor03/REST/message/last
Poslední změna dat: http://linedu.vsb.cz/~mor03/REST/last
Seznam přezdívek:
http://linedu.vsb.cz/~mor03/REST/nicks
Aktualizace dat (U: metoda PUT, zaslán json/query str.):
http://linedu.vsb.cz/~mor03/REST/message/2
Alternativa (klasicky, POST): http://linedu.vsb.cz/~mor03/REST/edit/2
Odstranění dat (D: metoda DELETE, pouze ID):
http://linedu.vsb.cz/~mor03/REST/message/2/heslo_pro_DU
Alternativa (pro POST): http://linedu.vsb.cz/~mor03/REST/delete/2
Formát datového objektu (aktualizovatelné informace):
{"id":2,"nick":"anon","text":"Ahoj", "token": "heslo_pro_DU",
"timestamp":"1398283628"}

Podobné dokumenty

Apache Cordova (PhoneGap 3)

Apache Cordova (PhoneGap 3) nastavit, aby se zabránilo overscrolling na iOS a Android:

Více

Základy ASP

Základy ASP Příklad 1 na tvorbu instance COM objektu v ASP...........................................................19 Oblasti viditelnosti proměnných v ASP ......................................................

Více

LT2252p širokoúhlý plochý monitor Uživatelská

LT2252p širokoúhlý plochý monitor Uživatelská Automatické nastavení obrazu vyžaduje, aby byl monitor nejméně 15 minut zahřátý. Pro běžný provoz to není nutné.

Více

Širokoúhlý plochý monitor L220x Uživatelská příručka

Širokoúhlý plochý monitor L220x Uživatelská příručka protahujte se, jděte se napít vody nebo na chvíli přerušte používání počítače z jiného důvodu. Krátká přestávka v práci znamená pro tělo vítanou změnu polohy a pomůže vám zachovat si pohodlí a výko...

Více

REST a Java aneb Jersey: referenční implementace JAX

REST a Java aneb Jersey: referenční implementace JAX “Prolinkovanost” • Reprezentace “resource” obsahují odkazy na další “resources”

Více

základy gis - Herber.kvalitne.cz

základy gis - Herber.kvalitne.cz Geografická informace a GIS Dámeme-li ví více „prů průsvitek“ svitek“ na sebe, máme zá základ geografické geografického informač informačního systé systému (GIS) Geografická Geografická informace ...

Více