REST-API mittels PHP & Lumen

Im Artikel Einfache REST-API mittels PHP habe ich ein einfaches Beispiel gezeigt wie nur mittels PHP eine REST-API erstellt werden kann. Ohne extra Frameworks ist dies allerdings recht unbequem, da man viel selbst implementieren muss und am Ende oft mit einer unübersichtlichen Liste an Dateien endet.

In diesem Artikel präsentiere ich euch Lumen, ein schlankes Framework zur einfachen Erstellung von REST-APIs mittels PHP.

Was ist Lumen?

Lumen, welches ebenfalls von Laravel, entwickelt wird, ist ein beliebtes PHP Micro-Framework, speziell für die Erstellung von Programmschnittstellen (APIs). Tendenziell lässt sich auch Laravel für die Erstellung von APIs nutzen, allerdings enthält Laravel recht viel Overhead-Code den man nicht unbedingt benötigt wenn man nur eine API erstellen möchte.

Lumen macht es einfach, die verschiedenen Routen der API zu definieren und mit Logik zu versehen. Wo ihr also vorher eine unübersichtliche Anzahl an PHP-Dateien habt, habt ihr nur ein paar wenige Dateien die die Routen eurer API definieren. Gerade bei großen Anwendungen, wie z.B. Bitqt (Anmeldung), macht dies das Leben einfacher.

 

Installation

Für die Installation benötigt ihr zuerst composer, eine Paketverwaltung für PHP. Nach der Installation von composer geht ihr in der Kommandozeile in den Ordner, den ihr für euer Projekt verwenden wollt.

Dort führt ihr dann folgenden Befehl aus:

Für weitere Infos zur Installation habt einen Blick auf die Lumen Documentation.

Datenbankverbindung einrichten

Als nächsten müssen wir im Lumen-Framework die Datenbank-Verbindung hinterlegen. Dazu öffnen wir die .env-Datei. Dort finden wir mehrere Einträge die die Datenbankverbindung spezifiziert:

Hier müsst ihr die entsprechenden Werte eurer Datenbank hinterlegen.

Routen anlegen

Als nächstes geht es daran, die Routen zu definieren. Eine Route entspricht dabei einer Funktionalität eurer Webanwendung, für eine To-Do-Liste könnte man z.B. Routen für das Anzeigen der To-Do-Liste haben, für das Bearbeiten eines Eintrags, für das Hinzufügen eines neuen Eintrags oder zur Löschung eines Eintrags. Große Webseiten, wie Beispielsweise  crypto genisus (Anmeldung), können hunderte oder tausende solcher Routen haben. Hier heißt es, sich vorab ein gutes System zu überlegen und diese Routen übersichtlich zu definieren.

Um eine Route in Lumen anzulegen öffnet ihr die routes/web.php Datei:

Hier haben wir zwei Routen angelegt. Eine GET-Route, die den Inhalt der todo-Tabelle (siehe Einfache REST-API mittels PHP) zurück gibt. Ebenfalls haben wir eine POST-Route, die den neuen Text in die todo-Tabelle einträgt.

Für mehr Informationen wie man in Lumen auf die Datenbank zugreift, siehe Lumen Database.

Autor:
Zurück zur Übersicht aller Beiträge