RestApi

Dáta sem, dáta tam.

Nástroje používateľa

Nástoje správy stránok


restapi_baseinfo

Rozdiely

Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.

Odkaz na tento prehľad zmien

Obojstranná predošlá revíziaPredchádzajúca revízia
Nasledujúca revízia
Predchádzajúca revízia
restapi_baseinfo [2025/07/28 13:05] – attilajancikrestapi_baseinfo [2025/09/04 15:21] (aktuálne) – [Formát dát] attilajancik
Riadok 1: Riadok 1:
 ====== REST API - ZÁKLADNÉ INFO ====== ====== REST API - ZÁKLADNÉ INFO ======
  
-==== Systém CRUD ====+**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.+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:** **Tvoria ho funkcie:**
   * CREATE - vytváranie -> SQL INSERT   * CREATE - vytváranie -> SQL INSERT
Riadok 10: Riadok 12:
   * DELETE - výmaz -> SQL DELETE   * DELETE - výmaz -> SQL DELETE
  
-==== REST API ====+===== REST API =====
  
-využíva základné formulácie CRUD pre vytvorenie web rozhrania. Komunikujú ním klient a server pomocou HTTP metód.+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:** **Výčet metód:**
   * GET- READ without change -> 200=OK, 404=NOT_FOUND, 400=BAD_REQUEST   * GET- READ without change -> 200=OK, 404=NOT_FOUND, 400=BAD_REQUEST
Riadok 26: Riadok 28:
 ==== Resources ==== ==== Resources ====
  
-sú zdroje pre aplikáciu metód. Jedná sa o cestu vyjadrujúcu zdoj.+sú zdroje pre aplikáciu metód. Jedná sa o cestu vyjadrujúcu zdoj. \\
 **Príklad:** **Príklad:**
   * GET /users   * GET /users
Riadok 33: Riadok 35:
 ==== Návratové kódy HTTP ==== ==== Návratové kódy HTTP ====
  
-**Príklad najčastejších:**+**Príklad najčastejších:** \\
   * 200 = OK -> úspech   * 200 = OK -> úspech
   * 201 = CREATED -> úspešné vytvorenie   * 201 = CREATED -> úspešné vytvorenie
Riadok 42: Riadok 44:
 ==== Formát dát ==== ==== Formát dát ====
  
-  * Nečíslovaný zoznamJSON je moderný spôsob komunikácie. Dáta sú ohraničené zloženými, alebo hranatými zátvorkami. Jednotlivé dáta sú priradené ku kľúčom. Kľúče i dáta ohraničujú dvojité úvodzovky a sú spojené dvojbodkou. Kombinácia zátvoriek oddeľuje zapúzdrené dáta a zoznamy. Odriadkovania a medzery nie sú potrebné, avšak pri prehliadaní sú vhodné (pretty formátovanie je na konci článku). Formát JSON slúži výhradne pre dáta, neumožňuje serializáciu metód, čo v dnešnej dobe už nie je potrebné. +  * **JSON** - je moderný spôsob komunikáciekde dáta sú napohľad dobre čitateľné. Dáta sú ohraničené zloženými, alebo hranatými zátvorkami. Jednotlivé dáta sú priradené ku kľúčom. Kľúče i dáta ohraničujú dvojité úvodzovky a sú spojené dvojbodkou. Kombinácia zátvoriek oddeľuje zapúzdrené dáta a zoznamy. Odriadkovania a medzery nie sú potrebné, avšak pri prehliadaní sú vhodné (pretty formátovanie je na konci článku). Formát JSON slúži výhradne pre dáta, neumožňuje serializáciu metód, čo v dnešnej dobe už nie je potrebné. 
-  * XML je funčný formát využívaný pred JSON. Tagy sú obdoba kľúčov. Vnorenie je taktiež pomocou tagov a prípadne ich skráteného ukončenia. +  * **XML** - je funčný formát využívaný pred JSON. Tagy sú obdoba kľúčov. Vnorenie je taktiež pomocou tagov a prípadne ich skráteného ukončenia. [[https://www.w3.org/TR/soap/|SOAP]] rozširuje možnosti XML 
-  * RAW je využiteľné pre CSV či TEXT+  * **RAW** - sú neorganizované dáta a je využitie môžetta byť pre CSV, TEXT alebo binárne dáta (napríklad komprimované), obrázky, programy a iné.
  
-==== príklad JSON ====+=== príklad JSON ===
  
-%%{"id":1,"name":"JSON","commands":[{"name": "POST","description": "create record"},{"name": "GET","description": "read data"}],"allowed_statuses":[200, 400, 404, 500]}"" \\+%%{"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) (formátovaný v závere článku)
  
-==== príklad XML ====+=== 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>%% \\ %%<?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) (formátovaný v závere článku)
  
-==== Poznámka ====+== 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á. 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í... 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. +Online konvertory sú spomenuté v tomto článku v linkoch. \\ 
-**príklady:** +**príklady:** \\ 
-```php+<code:php>
 $jsonData = simplexml_load_file($xml_data_file); $jsonData = simplexml_load_file($xml_data_file);
-```+</code>
  
-## Autentifikácia +===== Autentifikácia ===== 
-overuje identitu dotazujúceho sa klienta.+ 
 +overuje identitu dotazujúceho sa klienta. \\
 **Najbežnejšie spôsoby overenia:** **Najbežnejšie spôsoby overenia:**
-- API key - Authorization: (anyApiKey) -> odporúča sa použiť len HTTPS, kedy je zašifrovaný +  * API key - Authorization: (anyApiKey) -> odporúča sa použiť len HTTPS, kedy je zašifrovaný 
-- Basic - Authorization: Basic base64(username:password) -> pre HTTPS +  * Basic - Authorization: Basic base64(username:password) -> pre HTTPS 
-- OAuth - Authorization: Bearer (token) -> časté využitie s podporou Scopes a Expirácie +  * OAuth - Authorization: Bearer (token) -> časté využitie s podporou Scopes a Expirácie 
-- JWT - Authorization: Bearer \<JWT-token\> -> v kombinácii s OAuth2.0+  * JWT - Authorization: Bearer \<JWT-token\> -> v kombinácii s OAuth2.0 
 + 
 +===== Linky na zdroje ===== 
 + 
 +  * https://latenode.com/blog/http-request-methods 
 +  * https://www.w3schools.com/TAgs/ref_httpmethods.asp 
 +  * konvertor XML<->JSON: https://www.site24x7.com/tools/xml-to-json.html 
 +  * konvertor JSON->XML: https://jsonformatter.org/json-to-xml 
 +  * konvertor XML->JSON: https://jsonformatter.org/xml-formatter 
 +  * konvertor XML<->JSON: https://codebeautify.org/jsonviewer 
 + 
 +----
  
-## Linky na zdroje +===== Ukážky k článku =====
-- https://latenode.com/blog/http-request-methods +
-- https://www.w3schools.com/TAgs/ref_httpmethods.asp +
-- konvertor XML<->JSON: https://www.site24x7.com/tools/xml-to-json.html +
-- konvertor JSON->XML: https://jsonformatter.org/json-to-xml +
-- konvertor XML->JSON: https://jsonformatter.org/xml-formatter +
-- konvertor XML<->JSON: https://codebeautify.org/jsonviewer+
  
----+==== Formátovaný JSON z príkladu: ====
  
-##### Formátovaný JSON z príkladu: +<code javascript>
-```json+
 { {
     "id": 1,     "id": 1,
Riadok 106: Riadok 113:
     ]     ]
 } }
-```+</code>
  
-##### Formátovaný XML z príkladu: +==== Formátovaný XML z príkladu: ==== 
-```xml+ 
 +<code xml>
 <?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
 <doc> <doc>
Riadok 127: Riadok 135:
     <allowed_statuses>500</allowed_statuses>     <allowed_statuses>500</allowed_statuses>
 </doc> </doc>
-```+</code>
  
-##### Pretty formátovanie Java a Kotlin: +==== Pretty formátovanie Java a Kotlin: ==== 
-```java+ 
 +<code java>
   {   {
     alertLD.setUniversalMessage(     alertLD.setUniversalMessage(
Riadok 141: Riadok 150:
     );     );
   }   }
-``` +</code> 
-```kotlin+<code kotlin>
     {     {
         showAlert("serialized response",         showAlert("serialized response",
Riadok 150: Riadok 159:
                 .toJson(data))                 .toJson(data))
     }     }
-```+</code> 
  
restapi_baseinfo.1753700743.txt.gz · Posledná úprava: od attilajancik