REST API u PHP-u
Postoje posebni pristupi koji standardizuju API za opštu pogodnost kako programera API-ja, tako i njegovih korisnika.
Jedan od takvih pristupa je REST API. U njegovoj osnovi leži ideja da se za CRUD operacije koriste različite metode HTTP protokola.
Za preuzimanje podataka - metoda GET, za kreiranje podataka - metoda POST, za izmenu podataka - metoda PUT, za brisanje podataka - metoda DELETE.
Za primer, hajde da razmotrimo neki API koji manipuliše korisnicima. Hajde da pogledamo kako će URL izgledati za različite akcije.
Preuzimamo sve korisnike:
GET http://api.loc/users/
Preuzimamo jednog korisnika po njegovom id:
GET http://api.loc/user/1/
Kreiramo korisnika:
POST http://api.loc/user/
Menjamo korisnika po njegovom id:
PUT http://api.loc/user/1/
Brišemo korisnika po njegovom id:
DELETE http://api.loc/user/1/
Hajde da pogledamo kako se REST API implementira u PHP-u. Ovde postoji određeni problem. Stvar je u tome što i PHP i CURL podržavaju samo GET i POST metode:
<?php
$method = $_SERVER['REQUEST_METHOD'];
var_dump($method); // samo GET i POST
?>
Zato ćemo za implementaciju REST API-ja morati
da pribegnemo triku. Njegova suština je u tome
da će se u stvarnosti podaci slati
samo GET i POST metodama, ali mi ćemo
oponašati rad drugih metoda
pomoću prilagođenog HTTP zaglavlja.
Nazvaćemo ga, na primer, HTTP-X-HTTP-METHOD.
Tada ćemo moći da preuzmemo sadržaj ovog zaglavlja na sledeći način:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
?>
Sada možemo da napišemo implementaciju 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 proizvode internet prodavnice.
Proverite rad implementiranog API-ja pomoću CURL biblioteke.