REST API PHP-ban
Léteznek speciális megközelítések, amelyek szabványosítják az API-t a fejlesztők és az API felhasználói általános kényelme érdekében.
Az egyik ilyen megközelítés a REST API. Alapötlete az, hogy a CRUD műveletekhez különböző HTTP protokoll módszereket kell használni.
Adatok lekéréséhez - GET módszer, adatok létrehozásához - POST módszer, adatok módosításához - PUT módszer, adatok törléséhez - DELETE módszer.
Példaként vegyünk egy API-t, amely felhasználókkal manipulál. Nézzük meg, hogyan fognak kinézni a URL-ek a különböző műveletekhez.
Összes felhasználó lekérése:
GET http://api.loc/users/
Egy felhasználó lekérése a id alapján:
GET http://api.loc/user/1/
Felhasználó létrehozása:
POST http://api.loc/user/
Felhasználó módosítása a id alapján:
PUT http://api.loc/user/1/
Felhasználó törlése a id alapján:
DELETE http://api.loc/user/1/
Nézzük meg, hogyan valósul meg a REST API PHP-ban. Itt van egy bizonyos probléma. Az a helyzet, hogy mind a PHP, mind a CURL csak a GET és POST módszereket támogatja:
<?php
$method = $_SERVER['REQUEST_METHOD'];
var_dump($method); // csak GET és POST
?>
Ezért a REST API megvalósításához
trükköznünk kell. A trükk lényege az,
hogy a valóságban az adatokat csak
GET és POST módszerekkel továbbítjuk,
de más módszerek működését fogjuk
utánozni egy egyéni HTTP fejléc segítségével.
Nevezzük el például HTTP-X-HTTP-METHOD-nak.
Így a fejléc tartalmát a következőképpen tudjuk megkapni:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
?>
Most már megírhatjuk az API megvalósítását:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
switch ($method) {
case 'GET':
// ...
break;
case 'POST':
// ...
break;
case 'PUT':
// ...
break;
case 'DELETE':
// ...
break;
}
?>
Valósítsa meg egy internetes bolt termékeinek REST API-ját.
Ellenőrizze a megvalósított API működését a CURL könyvtár segítségével.