⊗ppSpAiRs 52 of 83 menu

REST API w PHP

Istnieją specjalne podejścia, standaryzujące API dla wspólnej wygody zarówno deweloperów API, jak i jego użytkowników.

Jednym z takich podejść jest REST API. Jego podstawą jest idea, że dla operacji CRUD należy używać różnych metod protokołu HTTP.

Dla pobierania danych - metoda GET, dla tworzenia danych - metoda POST, dla zmiany danych - metoda PUT, dla usuwania danych - metoda DELETE.

Dla przykładu rozważmy pewne API, manipulujące użytkownikami. Spójrzmy, jak będą wyglądać URL dla różnych akcji.

Pobieramy wszystkich użytkowników:

GET http://api.loc/users/

Pobieramy jednego użytkownika po jego id:

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

Tworzymy użytkownika:

POST http://api.loc/user/

Zmieniamy użytkownika po jego id:

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

Usuwamy użytkownika po jego id:

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

Spójrzmy, jak REST API jest implementowane w PHP. Jest tu pewien problem. Chodzi o to, że zarówno PHP, jak i CURL obsługują tylko metody GET i POST:

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

Dlatego do implementacji REST API trzeba będzie pójść na sztuczkę. Jej istota polega na tym, że w rzeczywistości dane będą przesyłane tylko metodami GET i POST, ale my będziemy symulować działanie innych metod za pomocą niestandardowego nagłówka HTTP. Nazwijmy go, na przykład, HTTP-X-HTTP-METHOD.

Wtedy będziemy mogli pobrać zawartość tego nagłówka w następujący sposób:

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

Teraz możemy napisać implementację API:

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

Zaimplementuj REST API produktów sklepu internetowego.

Sprawdź działanie zaimplementowanego API za pomocą biblioteki CURL.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć