REST API PHP-s
On olemas spetsiaalsed lähenemised, mis standardiseerivad API-d üldiseks mugavuseks nii API arendajatele kui ka selle kasutajatele.
Üks selline lähenemine on REST API. Selle aluseks on idee, et CRUD operatsioonide jaoks on vaja kasutada erinevaid HTTP protokolli meetodeid.
Andmete saamiseks - GET meetod, andmete loomiseks - POST meetod, andmete muutmiseks - PUT meetod, andmete kustutamiseks - DELETE meetod.
Näitena vaatleme mõnd API-d, mis manipuleerib kasutajatega. Vaatame, kuidas URL-id erinevate tegevuste jaoks välja näevad.
Saame kõik kasutajad:
GET http://api.loc/users/
Saame ühe kasutaja tema id järgi:
GET http://api.loc/user/1/
Loome kasutaja:
POST http://api.loc/user/
Muudame kasutajat tema id järgi:
PUT http://api.loc/user/1/
Kustutame kasutaja tema id järgi:
DELETE http://api.loc/user/1/
Vaatame, kuidas REST API-d PHP-s rakendatakse. Siin on teatud probleem. Asi on selles, et nii PHP kui CURL toetavad ainult GET ja POST meetodeid:
<?php
$method = $_SERVER['REQUEST_METHOD'];
var_dump($method); // ainult GET ja POST
?>
Seetõttu tuleb REST API rakendamiseks
kasutada võtmet. Selle olemus seisneb selles,
et tegelikult edastatakse andmeid
ainult GET ja POST meetoditega, kuid me
imiteerime teiste meetodite tööd
kohandatud HTTP päise abil.
Nimetame selle näiteks HTTP-X-HTTP-METHOD.
Siis saame selle päise sisu saada järgmiselt:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
?>
Nüüd saame kirjutada API rakenduse:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
switch ($method) {
case 'GET':
// ...
break;
case 'POST':
// ...
break;
case 'PUT':
// ...
break;
case 'DELETE':
// ...
break;
}
?>
Rakendage e-poe kaupade REST API.
Testige rakendatud API tööd CURL teeki abil.