⊗ppSpAiRs 52 of 83 menu

REST API în PHP

Există abordări speciale, care standardizează API-ul pentru comoditatea generală atât a dezvoltatorilor API, cât și a utilizatorilor săi.

Una dintre aceste abordări este REST API. La baza sa stă ideea că pentru operațiile CRUD este necesar să se utilizeze diferite metode ale protocolului HTTP.

Pentru obținerea datelor - metoda GET, pentru crearea datelor - metoda POST, pentru modificarea datelor - metoda PUT, pentru ștergerea datelor - metoda DELETE.

De exemplu, să luăm în considerare un API care manipulează utilizatori. Să vedem cum vor arăta URL-urile pentru diferite acțiuni.

Obținem toți utilizatorii:

GET http://api.loc/users/

Obținem un utilizator după id-ul său:

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

Creăm un utilizator:

POST http://api.loc/user/

Modificăm utilizatorul după id-ul său:

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

Ștergem utilizatorul după id-ul său:

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

Să vedem cum este implementat REST API în PHP. Aici există o anumită problemă. Cert este că atât PHP, cât și CURL suportă doar metodele GET și POST:

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

Prin urmare, pentru a implementa REST API va trebui să recurgem la un truc. Esența lui constă în faptul că în realitate datele vor fi transmise doar prin metodele GET și POST, dar noi vom simula funcționarea altor metode cu ajutorul unui antet HTTP personalizat. Să-l numim, de exemplu, HTTP-X-HTTP-METHOD.

Atunci vom putea obține conținutul acestui antet în felul următor:

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

Acum putem scrie implementarea API-ului:

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

Implementați un REST API pentru produsele unui magazin online.

Testați funcționarea API-ului implementat cu ajutorul bibliotecii CURL.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge