Diese SitePoint -Serie hat REST -Prinzipien untersucht. Dieser Artikel zeigt, dass ein erholsamer Webdienst mit Slim, einem von Sinatra (Ruby) inspirierten PHP Micro-Framework, erstellt wird. Die leichte Natur von SLIM mit Kernkomponenten wie Routing, Anforderungs-/Antworthandhabung und minimaler Ansichtsunterstützung macht es ideal für einfache REST -APIs.
Schlüsselkonzepte:
post()
, put()
und delete()
Methoden zum Erstellen, Aktualisieren und Löschen von Buchsätzen. Einführung in schlanker Einführung:
index.php
Beginnen Sie mit dem Herunterladen von Slim. In diesem Beispiel wird der 5.3 -Stil verwendet. Erstellen Sie
<?php require "Slim/Slim.php"; $app = new Slim(); $app->get("/", function () { echo "<h1>Hello Slim World</h1>"; }); $app->run(); ?>
index.php
Zugriff auf MODE
in Ihrem Browser zeigt "Hallo Slim World" an. Slim Autoloads notwendige Dateien. Der schlanke Konstruktor akzeptiert die Konfiguration (z. B. TEMPLATES.PATH
, VIEW
, MODE
). TEMPLATES.PATH
legt die Umgebung (Entwicklung/Produktion) fest, und Slim_View
Gibt das Vorlagenverzeichnis an. Benutzerdefinierte Ansichtshandler können die Standardeinstellung
<?php $app = new Slim(array( "MODE" => "development", "TEMPLATES.PATH" => "./templates" )); ?>
run()
Routenerstellung ist entscheidend. Routes mart URIs zu Rückruffunktionen basierend auf HTTP -Methoden. Slim priorisiert die erste passende Route; Unübertroffene Anforderungen führen zu einem 404 -Fehler. Rufen Sie nach dem Definieren von Routen
Erstellen eines Bibliotheksdienstes:
Erstellen wir einen Bibliotheksverwaltungsdienst. NotorM vereinfacht die Datenbankinteraktion (erfordert eine PDO -Instanz).
<?php require "NotORM.php"; $pdo = new PDO($dsn, $username, $password); // Replace with your database credentials $db = new NotORM($pdo); ?>
Auflistungsbücher:
Dieser Endpunkt listet alle Bücher im JSON -Format auf:
<?php // ... (previous code) ... $app->get("/books", function () use ($app, $db) { $books = array(); foreach ($db->books() as $book) { $books[] = array( "id" => $book["id"], "title" => $book["title"], "author" => $book["author"], "summary" => $book["summary"] ); } $app->response()->header("Content-Type", "application/json"); echo json_encode($books); }); // ... (rest of the code) ...
get()
use
Handles GET -Anfragen. application/json
ermöglicht den Zugriff auf externe Variablen innerhalb der anonymen Funktion. Der Antwortheader ist auf
Buchdetails erhalten:
ein Buch nach ID abrufen:
<?php // ... (previous code) ... $app->get("/book/:id", function ($id) use ($app, $db) { $app->response()->header("Content-Type", "application/json"); $book = $db->books()->where("id", $id); if ($data = $book->fetch()) { echo json_encode(array( "id" => $data["id"], "title" => $data["title"], "author" => $data["author"], "summary" => $data["summary"] )); } else { echo json_encode(array( "status" => false, "message" => "Book ID $id does not exist" )); } }); // ... (rest of the code) ...
:id
Der Routenparameter /book(/:id)
wird an die Rückruffunktion übergeben. Optionale Parameter verwenden func_get_args()
. Verwenden Sie für optionale Parameter ohne explizite Rückrufargumente
Hinzufügen und Bearbeiten von Büchern:
<🎜> post()
fügt und put()
Bücher hinzu:
<?php require "Slim/Slim.php"; $app = new Slim(); $app->get("/", function () { echo "<h1>Hello Slim World</h1>"; }); $app->run(); ?>
$app->request()->post()
und $app->request()->put()
post- bzw. Daten abrufen. Verwenden Sie für Browser-basierte Put-Anforderungen ein verstecktes Feld _METHOD
mit dem Wert "Put" in Ihrem Formular.
Bücher löschen:
Ein Buch durch ID löschen:
<?php $app = new Slim(array( "MODE" => "development", "TEMPLATES.PATH" => "./templates" )); ?>
Die delete()
-Methode entfernt den Datenbankdatensatz. Die Methode map()
verarbeitet mehrere HTTP -Methoden auf einer einzelnen Route (hier nicht gezeigt).
Schlussfolgerung:
Dieser Artikel zeigt, dass ein grundlegender Rastful -Webdienst mit SLIM erstellt wird. Die Weiterentwicklung sollte eine robuste Fehlerbehandlung und die Eingabevalidierung umfassen. Der Quellcode (hier nicht enthalten) finden Sie in GitHub (Link nicht im Originaltext angegeben). Der FAQS -Abschnitt des Originaltextes wird weggelassen, da er grundlegende Informationen liefert, die durch SLIM -Dokumentation leicht verfügbar sind.
Das obige ist der detaillierte Inhalt vonPHP Master | Schreiben Sie einen erholsamen Webdienst mit Slim. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!