⊗ppSpAiRs 52 of 83 menu

REST API v PHP

Existují speciální přístupy, které standardizují API pro společné pohodlí jak vývojářů API, tak jeho uživatelů.

Jedním z takových přístupů je REST API. Jeho základem je myšlenka, že pro CRUD operace je nutné používat různé metody protokolu HTTP.

Pro získání dat - metoda GET, pro vytvoření dat - metoda POST, pro změnu dat - metoda PUT, pro smazání dat - metoda DELETE.

Jako příklad uvažujme nějaké API, které manipuluje s uživateli. Podívejme se, jak budou URL pro různé akce vypadat.

Získáme všechny uživatele:

GET http://api.loc/users/

Získáme jednoho uživatele podle jeho id:

GET http://api.loc/user/1/

Vytvoříme uživatele:

POST http://api.loc/user/

Změníme uživatele podle jeho id:

PUT http://api.loc/user/1/

Smažeme uživatele podle jeho id:

DELETE http://api.loc/user/1/

Podívejme se, jak se REST API implementuje v PHP. Je zde určitý problém. Faktem je, že jak PHP, tak CURL podporují pouze metody GET a POST:

<?php $method = $_SERVER['REQUEST_METHOD']; var_dump($method); // pouze GET a POST ?>

Proto pro implementaci REST API budeme muset použít trik. Podstata spočívá v tom, že ve skutečnosti budou data přenášena pouze metodami GET a POST, ale my budeme napodobovat práci jiných metod pomocí vlastní HTTP hlavičky. Pojmenujeme ji například HTTP-X-HTTP-METHOD.

Pak budeme moci získat obsah této hlavičky následujícím způsobem:

<?php $method = $_SERVER['HTTP-X-HTTP-METHOD']; ?>

Nyní můžeme napsat implementaci API:

<?php $method = $_SERVER['HTTP-X-HTTP-METHOD']; switch ($method) { case 'GET': // ... break; case 'POST': // ... break; case 'PUT': // ... break; case 'DELETE': // ... break; } ?>

Implementujte REST API pro produkty internetového obchodu.

Otestujte funkčnost implementovaného API pomocí knihovny CURL.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout