RESTful API TAMZ 1. Cvičení 11

Podobné dokumenty
Zápasíme s REST API. Lukáš Křečan REST API Architect GoodData

Webové služby. Martin Sochor

Počítačové sítě II. 18. World Wide Web, HTTP Miroslav Spousta,

Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták

Počítačové sítě II 17. WWW, HTTP. Miroslav Spousta, 2005

Web Services na SOAP

Úvod do Web Services

JSON API pro zjišťování cen MtG karet

HTTP protokol. Zpracoval : Petr Novotný

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

WCF. IW5 - Programování v.net a C# WCF

API pro volání služby kurzovního lístku KB

HTTP protokol. HTTP protokol - úvod. Zpracoval : Petr Novotný novotny0@students.zcu.cz

Anabix API. Popis způsobu používání služby

Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

Artlingua Translation API

Michal Krátký, Miroslav Beneš

WWW technologie. HTTP protokol

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Tvorba informačních systémů

Roční periodická zpráva projektu

KIV/PIA 2013 Jan Tichava

Příručka pro potvrzování zůstatku vydavatelům karetních platebních prostředků

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Technická dokumentace B2C WS postcode

Analyzujte konkurenční API u služeb podobného typu. Proveďte analýzu požadavků zadavatele a současného stavu správy zásilek.

BI-AWD. Administrace Webového a Databázového serveru Virtualizace HTTP serveru

Sem vložte zadání Vaší práce.

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Vývojařská Plzeň AngularJS

Příloha č. 2 - Integrace SpiritÚAP do ESB Jihočeského kraje

Komponentový návrh SW

Platební systém XPAY [

Protokol HTTP 4IZ228 tvorba webových stránek a aplikací

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

INFORMAČNÍ SYSTÉMY NA WEBU

ZP API V1.0 Návod pro vývojáře SW

Úvod Úrovňová architektura sítě Prvky síťové architektury Historie Příklady

RESTful web service v Javě

TRANSPORTY výbušnin (TranV)

Reranking založený na metadatech

Server-side technologie pro webové aplikace

Pokročilé Webové služby a Caché security. Š. Havlíček

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

sms-sluzba.cz API_XML30 - textové SMS do ČR a do zahraničí

Úvod do tvorby internetových aplikací

Protokol HTTP. Ondřej Dolejš

WINDOWS 8 APLIKACE PRO PREZENTACI DAT Z WEBOVÉHO API

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Úvod do aplikací internetu a přehled možností při tvorbě webu

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům.

TFTP Trivial File Transfer Protocol

Schéma e-pošty. UA (User Agent) rozhraní pro uživatele MTA (Message Transfer Agent) zajišťuje dopravu dopisů. disk. odesilatel. fronta dopisů SMTP

PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S.

Formuláře. Aby nám mohli uživatelé něco hezného napsat třeba co si o nás myslí!

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

IP telephony security overview

Databázové a informační systémy

2N Helios IP HTTP API

Django. Webový framework pro Python Projekt = webová stránka Aplikace = určitá funkcionalita webu

MVVM pro desktop i web

Dokumentace k API SSLmarketu. verze 1.3

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

PSD 2 Payment Service Directive

Tvorba webových stránek. Ing. Radek Burget, Ph.D.

Prototyping konfigurace linuxových serverů. horizontální škálování Deltacloud API

Přístup k transportní vrstvě z vrstvy aplikační rozhraní služeb služby pro systémové aplikace, služby pro uživatelské aplikace DNS

SIP Session Initiation Protocol

SUTOL Symposium 2014

Úvod do FlexiBee REST API. Petr Ferschmann FlexiBee Systems s.r.o.

Použití databází na Webu

Instalace a konfigurace web serveru. WA1 Martin Klíma

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Content Security Policy

CREDITAS API A OTEVŘENÉ BANKOVNICTVÍ - MANUÁL

Počítačové sítě Aplikační vrstva Domain Name System (DNS)

SOAP & REST služby. Rozdíly, architektury, použití

Novinky v oblasti SAP Mobility. Martin Zikmund, Presale Mobility Platforms Miroslav Řehoř, Account Executive

Rozhraní pro docházkové systémy verze 2

ASP.NET Web API. Tomáš Herceg Microsoft MVP (ASP.NET)

1 Webový server, instalace PHP a MySQL 13

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava. Cvičení 5 POČÍTAČOVÁ OBRANA A ÚTOK - POU

MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY

[ 1 ] Ing. Tomáš Melen náměstek pro informatiku a ekonomiku 2009 Státní ústav pro kontrolu léčiv

Nástroje pro FlowSpec a RTBH. Jiří Vraný, Petr Adamec a Josef Verich CESNET. 30. leden 2019 Praha

FlowMon 8.0. Představení novinek v řešení FlowMon. Petr Špringl, Jan Pazdera {springl pazdera}@invea.com

ilé aspekty distribuovaných objektových systémů

Web. Získání informace z internetu Grafické zobrazení dat a jejich struktura Rozšíření funkcí pomocí serveru Rozšíření funkcí pomocí prohlížeče

Oracle XML DB. Tomáš Nykodým

ZADÁNÍ DIPLOMOVÉ PRÁCE

Počítačové sítě Systém pro přenos souborů protokol FTP

spolupráce více systémů. . Pro zajištění služby je používáno více aplikačních protokolů, např.: DNS SMTP.

Transkript:

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 (Retrieve) 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 API služby, předvedené cvičícím Vložení dat (C: metoda POST, zaslán query string): http://homel.vsb.cz/~mor03/rest/api.php?request=message Získání dat (R: metoda GET, vráceno pole objektů): http://homel.vsb.cz/~mor03/rest/api.php?request=message http://homel.vsb.cz/~mor03/rest/api.php?request=message/2 http://homel/~mor03/rest/api.php?request=message/nick/aaa http://homel.vsb.cz/~mor03/rest/api.php?request=message/last Aktualizace dat (U: metoda PUT, zaslán json/query str.): http://homel.vsb.cz/~mor03/rest/api.php?request=message/2 Alternativa, pokud nelze použít PUT, ale použijeme POST: http://homel.vsb.cz/~mor03/rest/api.php?request=edit/2 Odstranění dat (D: metoda DELETE, pouze ID): http://homel.vsb.cz/~mor03/rest/api.php?request=message/2 Alternativa, pokud nelze použít PUT, ale použijeme POST: http://homel.vsb.cz/~mor03/rest/api.php?request=delete/2 Formát datového objektu (aktualizovatelné informace): {"id":2,"nick":'anon',"text":"hello", token: "secret_for_du", "timestamp":"2014-04-23 20:24:17"}