Obsah

REST API - ZÁKLADNÉ INFO

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.

Systém CRUD

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:

REST API

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:

Resources

sú zdroje pre aplikáciu metód. Jedná sa o cestu vyjadrujúcu zdoj.
Príklad:

Príklad najčastejších:

Formát dát

príklad JSON

{"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)

príklad XML

<?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)

Poznámka

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);

Autentifikácia

overuje identitu dotazujúceho sa klienta.
Najbežnejšie spôsoby overenia:

Linky na zdroje


Ukážky k článku

Formátovaný JSON z príkladu:

{
    "id": 1,
    "name": "JSON",
    "commands": [
        {
            "name": "POST",
            "description": "create record"
        },
        {
            "name": "GET",
            "description": "read data"
        }
    ],
    "allowed_statuses": [
        200,
        400,
        404,
        500
    ]
}

Formátovaný XML z príkladu:

<?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>

Pretty formátovanie Java a Kotlin:

  {
    alertLD.setUniversalMessage(
        new GsonBuilder()
            .setPrettyPrinting()
            .create()
            .toJson(new Gson()
                .fromJson(response, JsonObject.class)
            )
    );
  }
    {
        showAlert("serialized response",
            GsonBuilder()
                .setPrettyPrinting()
                .create()
                .toJson(data))
    }