REST API PHP
Ir speciālas pieejas, kas standartizē API gan izstrādātāju, gan lietotāju ērtībām.
Viena no šādām pieejām ir REST API. Tās pamatā ir ideja, ka CRUD operācijām jāizmanto dažādi HTTP protokola metodi.
Datu iegūšanai - GET metode, datu izveidošanai - POST metode, datu maiņai - PUT metode, datu dzēšanai - DELETE metode.
Piemēram, apskatīsim kādu API, kas strādā ar lietotājiem. Apskatīsim, kā izskatīsies URL dažādām darbībām.
Iegūstam visus lietotājus:
GET http://api.loc/users/
Iegūstam vienu lietotāju pēc viņa id:
GET http://api.loc/user/1/
Izveidojam lietotāju:
POST http://api.loc/user/
Mainām lietotāju pēc viņa id:
PUT http://api.loc/user/1/
Dzēšam lietotāju pēc viņa id:
DELETE http://api.loc/user/1/
Apskatīsim, kā REST API tiek ievietots PHP. Šeit ir zināma problēma. Fakts ir tāds, ka gan PHP, gan CURL atbalsta tikai GET un POST metodes:
<?php
$method = $_SERVER['REQUEST_METHOD'];
var_dump($method); // tikai GET un POST
?>
Tāpēc, lai ieviestu REST API, būs
jāizmanto viltība. Tās būtība ir tāda,
ka patiesībā dati tiks pārsūtīti
tikai ar GET un POST metodēm, bet mēs
imitēsim citu metožu darbību
izmantojot pielāgotu HTTP galveni.
Nosauksim to, piemēram, par HTTP-X-HTTP-METHOD.
Tad mēs varēsim iegūt šīs galvenes saturu šādi:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
?>
Tagad mēs varam uzrakstīt API ieviešanu:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
switch ($method) {
case 'GET':
// ...
break;
case 'POST':
// ...
break;
case 'PUT':
// ...
break;
case 'DELETE':
// ...
break;
}
?>
Ieviesiet interneta veikala preču REST API.
Pārbaudiet ieviestā API darbību izmantojot CURL bibliotēku.