Representational State Transfer Application Programming Interface zabezpečuje komunikáciu cez internet pomocou HTTP protokolu. Klient formou dotazu na server žiada odpovede na svoje dotazy. Tieto dotazy majú hlavný cieľ údaje uložiť, získať, aktualizovať či odstrániť (CRUD). Klient dotazy smeruje na server tak, že špecifikuje cestu ku zdroju (resources) a žiada využiť metódu (POST, GET, PUT/PATCH, DELETE). Dotaz môže obsahovať autentifikáciu klienta a telo so správou (DATA). Server odpovedá kažému klientovi zvlášť.
Každý dotaz by mal dostať odpoveď, ktorá obsahuje návratový kód a ak je dotaz oprávnený či vykonateľný, tak aj požadované dáta.
je model operácií s dátami pri komunikácii cez web rozhranie. Univerzálnosť ho predurčuje pre širokú škálu nasadenia v rôznych systémoch.
Tvoria ho funkcie:
využíva základné formulácie CRUD pre vytvorenie web rozhrania. Komunikujú ním klient a server pomocou HTTP metód.
Výčet metód:
sú zdroje pre aplikáciu metód. Jedná sa o cestu vyjadrujúcu zdoj.
Príklad:
Príklad najčastejších:
{"id":1,"name":"JSON","commands":[{"name": "POST","description": "create record"},{"name": "GET","description": "read data"}],"allowed_statuses":[200, 400, 404, 500]}
(formátovaný v závere článku)
<?xml version="1.0" encoding="UTF-8" ?><doc><id>1</id><name>JSON</name><commands><name>POST</name><description>create record</description></commands><commands><name>GET</name><description>read data</description></commands><allowed_statuses>200</allowed_statuses><allowed_statuses>400</allowed_statuses><allowed_statuses>404</allowed_statuses><allowed_statuses>500</allowed_statuses></doc>
(formátovaný v závere článku)
Z príkladu prevodu JSON na XML je vidieť istú nekompatibilitu. XML sme museli zabaliť do "doc", ale inak konverzie sú možné. V PHP je konverzia XML→JSON štandardných formátov bezproblémová.
Pri načítaní XML feedov do webShopu sa pravdepodobne nevyhnete úpravám špeciálnych znakov a polí…
Online konvertory sú spomenuté v tomto článku v linkoch.
príklady:
$jsonData = simplexml_load_file($xml_data_file);
overuje identitu dotazujúceho sa klienta.
Najbežnejšie spôsoby overenia:
{ "id": 1, "name": "JSON", "commands": [ { "name": "POST", "description": "create record" }, { "name": "GET", "description": "read data" } ], "allowed_statuses": [ 200, 400, 404, 500 ] }
<?xml version="1.0" encoding="UTF-8" ?> <doc> <id>1</id> <name>JSON</name> <commands> <name>POST</name> <description>create record</description> </commands> <commands> <name>GET</name> <description>read data</description> </commands> <allowed_statuses>200</allowed_statuses> <allowed_statuses>400</allowed_statuses> <allowed_statuses>404</allowed_statuses> <allowed_statuses>500</allowed_statuses> </doc>
{ alertLD.setUniversalMessage( new GsonBuilder() .setPrettyPrinting() .create() .toJson(new Gson() .fromJson(response, JsonObject.class) ) ); }
{ showAlert("serialized response", GsonBuilder() .setPrettyPrinting() .create() .toJson(data)) }