PHP-дегі REST 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 кітапханасының көмегімен тексеріңіз.