⊗ppSpAiRs 52 of 83 menu

REST API у PHP-у

Постоје посебни приступи који стандардизују API ради опште погодности како програмера који развијају API, тако и његових корисника.

Један од таквих приступа је REST API. Његова основа је идеја да за CRUD операције треба користити различите методе HTTP протокола.

За добијање података - метод GET, за креирање података - метод POST, за измену података - метод PUT, за брисање података - метод DELETE.

За пример, хајде да размотримо неки API који манипулише корисницима. Хајде да погледамо како ће URL изгледати за различите радње.

Добијамо све кориснике:

GET http://api.loc/users/

Добијамо једног корисника по његовом id:

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

Креирамо корисника:

POST http://api.loc/user/

Мењамо корисника по његовом id:

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

Бришемо корисника по његовом id:

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

Хајде да погледамо како се REST API имплементира у PHP-у. Овде постоји одређени проблем. Ствар је у томе што и PHP, и CURL подржавају само методе GET и POST:

<?php $method = $_SERVER['REQUEST_METHOD']; var_dump($method); // само GET и POST ?>

Због тога, за имплементацију REST API-ја мораћемо да прибегнемо лукавству. Његова суштина је у томе, да ће у стварности подаци бити прослеђивани само методама GET и POST, али ми ћемо имитирати рад других метода помоћу прилагођеног HTTP заглавља. Назовимо га, на пример, HTTP-X-HTTP-METHOD.

Тада ћемо моћи да добијемо садржај тог заглавља на следећи начин:

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

Сада можемо да напишемо имплементацију API-ја:

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

Имплементирајте REST API за производе интернет продавнице.

Проверите рад имплементираног API-ја користећи CURL библиотеку.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј