REST API in PHP
Es gibt spezielle Ansätze, die API zur allgemeinen Bequemlichkeit sowohl der API-Entwickler als auch seiner Benutzer standardisieren.
Einer dieser Ansätze ist REST API. Ihm liegt die Idee zugrunde, dass für CRUD-Operationen verschiedene Methoden des HTTP-Protokolls verwendet werden müssen.
Zum Abrufen von Daten - die GET-Methode, zum Erstellen von Daten - die POST-Methode, zum Ändern von Daten - die PUT-Methode, zum Löschen von Daten - die DELETE-Methode.
Als Beispiel betrachten wir eine API, die Benutzer manipuliert. Schauen wir uns an, wie die URLs für verschiedene Aktionen aussehen werden.
Alle Benutzer abrufen:
GET http://api.loc/users/
Einen Benutzer anhand seiner id abrufen:
GET http://api.loc/user/1/
Benutzer erstellen:
POST http://api.loc/user/
Benutzer anhand seiner id ändern:
PUT http://api.loc/user/1/
Benutzer anhand seiner id löschen:
DELETE http://api.loc/user/1/
Schauen wir uns an, wie REST API in PHP implementiert wird. Hier gibt es ein gewisses Problem. Tatsache ist, dass sowohl PHP als auch CURL nur die Methoden GET und POST unterstützen:
<?php
$method = $_SERVER['REQUEST_METHOD'];
var_dump($method); // nur GET und POST
?>
Daher muss für die Implementierung von REST API
eine List angewendet werden. Sie besteht darin,
dass in der Realität Daten nur mit den Methoden
GET und POST übertragen werden, aber wir werden
die Arbeit anderer Methoden mit Hilfe eines
benutzerdefinierten HTTP-Headers imitieren.
Nennen wir ihn zum Beispiel HTTP-X-HTTP-METHOD.
Dann können wir den Inhalt dieses Headers wie folgt abrufen:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
?>
Jetzt können wir die API-Implementierung schreiben:
<?php
$method = $_SERVER['HTTP-X-HTTP-METHOD'];
switch ($method) {
case 'GET':
// ...
break;
case 'POST':
// ...
break;
case 'PUT':
// ...
break;
case 'DELETE':
// ...
break;
}
?>
Implementieren Sie eine REST API für Produkte eines Online-Shops.
Testen Sie die Funktionsweise der implementierten API mit der CURL-Bibliothek.