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 да қандай амалга оширилишини кўриб чиқайлик. Бу ерда бир муаммо бор. Гap яна 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 кутубхонаси ёрдамида текшириб кўринг.