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 библиотеку.