REST API v PHP
Obstajajo posebni pristopi, ki standardizirajo API za skupno udobje tako razvijalcev API-ja kot tudi njegovih uporabnikov.
Eden takih pristopov je REST API. Temelji na ideji, da je za CRUD operacije potrebno uporabljati različne metode protokola HTTP.
Za pridobivanje podatkov - metoda GET, za ustvarjanje podatkov - metoda POST, za spreminjanje podatkov - metoda PUT, za brisanje podatkov - metoda DELETE.
Za primer razmislimo o nekem API-ju, ki upravlja z uporabniki. Poglejmo, kako bodo izgledali URL-ji za različna dejanja.
Pridobimo vse uporabnike:
GET http://api.loc/users/
Pridobimo enega uporabnika po njegovem id:
GET http://api.loc/user/1/
Ustvarimo uporabnika:
POST http://api.loc/user/
Spremenimo uporabnika po njegovem id:
PUT http://api.loc/user/1/
Izbrišemo uporabnika po njegovem id:
DELETE http://api.loc/user/1/
Poglejmo, kako se REST API implementira v PHP. Tu je neka težava. Dejstvo je, da tako PHP kot CURL podpirata samo metodi GET in POST:
<?php
$method = $_SERVER['REQUEST_METHOD'];
var_dump($method); // samo GET in POST
?>
Zato bomo morali za implementacijo REST API-ja
uporabiti trik. Bistvo je v tem,
da se bodo podatki v resnici prenašali
le z metodama GET in POST, vendar bomo
posnemali delovanje drugih metod
s pomočjo posebne HTTP glave.
Poimenujmo jo, na primer, HTTP-X-HTTP-METHOD.
Takrat bomo lahko vsebino te glave dobili na naslednji način:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
?>
Zdaj lahko napišemo implementacijo API-ja:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
switch ($method) {
case 'GET':
// ...
break;
case 'POST':
// ...
break;
case 'PUT':
// ...
break;
case 'DELETE':
// ...
break;
}
?>
Implementirajte REST API za izdelke spletne trgovine.
Preverite delovanje implementiranega API-ja s pomočjo knjižnice CURL.