So erstellen Sie eine erweiterte PHP Rest-API

https://davisonpro.dev

Ich habe gerade DavisonPro.dev gestartet. Ein eigenständiger Blog, in dem ich über Javascript, Webentwicklung und Softwareentwicklung schreibe.

Wir werden eine erweiterte Version von Wie erstelle ich eine einfache REST-API in PHP? Schritt für Schritt Anleitung! von Codeofaninja.com.

Dies ist eine erweiterte Methode zum Strukturieren einer API. In diesem Artikel werden nur die Hauptdateien in diesem Projekt behandelt.

Laden Sie den auf Github verfügbaren Quellcode dieses Projekts herunter.

Das Projekt hat viele erstaunliche Funktionen und Klassen, die Sie sich unbedingt ansehen und in Ihren zukünftigen Projekten verwenden sollten.

Was ist die REST-API?

REST steht für "Representational State Transfer". API steht für "Application Programming Interface". Hierbei handelt es sich um eine Reihe von Regeln, die es einer Softwareanwendung ermöglichen, mit einer anderen zu kommunizieren. Diese „Regeln“ können das Erstellen, Lesen, Aktualisieren und Löschen von Vorgängen umfassen.

So könnte es im Alltag aussehen: Sie suchen über eine Online-Reisebuchungsseite nach einem Hotelzimmer. Über das Online-Formular der Website wählen Sie die Stadt, in der Sie übernachten möchten, das An- und Abreisedatum, die Anzahl der Gäste und die Anzahl der Zimmer aus. Dann klicken Sie auf "Suchen".
Wie Sie vielleicht wissen, fasst die Reiseseite Informationen aus vielen verschiedenen Hotels zusammen. Wenn Sie auf "Suchen" klicken, interagiert die Website mit der API jedes Hotels. Dadurch werden Ergebnisse für verfügbare Zimmer geliefert, die Ihren Kriterien entsprechen. Dies alles kann aufgrund einer API, die wie ein Messenger zwischen Anwendungen, Datenbanken und Geräten hin und her läuft, innerhalb von Sekunden geschehen.

Warum brauchen wir REST API?

In vielen Anwendungen wird die REST-API benötigt, da dies die einfachste Möglichkeit ist, Informationen zwischen verschiedenen Anwendungen über das Internet oder das HTTP-Protokoll zu erstellen, zu lesen, zu aktualisieren oder zu löschen. Diese Informationen werden dem Benutzer sofort angezeigt, insbesondere wenn Sie JavaScript zum Rendern der Daten auf einer Webseite verwenden.

Grundlegendes zur REST-API

REST bietet einen Block von HTTP-Methoden, mit denen die Daten geändert werden. Folgendes sind gebräuchliche HTTP-Methoden:

GET - wird zum Lesen und Abrufen von Daten verwendet.

POST - wird zum Einfügen von Daten verwendet.

PUT / PATCH - wird zum Aktualisieren von Daten verwendet.

LÖSCHEN - wird zum Löschen von Daten verwendet.

Grundsätzlich wirken sich REST-Phänomene auf Aktionen und Ressourcen aus. Immer wenn eine Aktions-URL aufgerufen wird, führt sie eine einzelne Methode (oder eine Reihe von Methoden) für diese URL aus. Ich werde dies weiter unten mit realen Beispielen diskutieren.

Zuerst müssen wir das Slim-Framework für das REST-API-Projekt installieren.

Installieren Sie Slim Framework From Composer

Navigieren Sie zu dem Hauptverzeichnis, in dem Sie das Projekt gespeichert haben, öffnen Sie Terminal oder Cmd, und führen Sie die Composer-Installation aus.

Richten Sie die Datenbank ein

Produkttabellenstruktur

Sicherungsdaten für Produkttabelle

Kategorietabellenstruktur

Sicherungsdaten für Kategorietabelle

Verbindung zur Datenbank herstellen

Der folgende Code zeigt die Datenbankanmeldeinformationen. Sie können PDO oder MYSQli verwenden, indem Sie die database_engine auf DbPDO oder DbMySQLi einstellen.

/index.php

API-Routen

/index.php

Produkt

Der folgende Code zeigt eine Klasse namens Product mit mehreren ihrer Eigenschaften.

Die statische Variable $ definition enthält die Struktur der Product-Tabelle.

Die Tabelleneigenschaft enthält den Namen der Tabelle ohne das Tabellenpräfix. Der primäre Array-Schlüssel ist der Primärschlüssel der aktuellen Tabelle. Der Feldschlüssel enthält alle Spalten der Tabelle mit Ausnahme des Primärfelds.

Fügen Sie den Primärschlüssel nicht in den Feldschlüssel ein.

Es werden nur die Spalten aktualisiert, die im Feldarray verfügbar sind.

Es hat auch eine Konstruktormethode, die $ id als Parameter akzeptiert. Wir werden diese $ id verwenden, um eine bestimmte Zeile aus der Datenbank zu lesen. Um ein Produkt mit der product_id 5 zu lesen, führen wir dies einfach durch:

$ product = neues Produkt (5);

/classes/Product/Product.php

Wir werden für jede von uns erstellte Tabelle eine ähnliche Struktur erstellen. Mit dem ObjectModel-Wrapper ist es einfacher, unsere Daten hinzuzufügen, abzurufen, zu löschen und zu aktualisieren.

Nehmen Sie das zum Beispiel. Wenn wir ein Produkt löschen wollen, gehen wir einfach wie folgt vor:

$ product = neues Produkt (THE_ID_TO_DELETE);
$ product-> delete ();

Produktroute

Der folgende Code zeigt eine Klasse mit dem Namen Product. Hier wird auf alle Endpunkte verwiesen, die die Produkte betreffen.

/controllers/v1/Product.php

Produkte in der Datenbank lesen - GET-Methode

Der folgende Code ruft alle Produkte in der Datenbank ab und gibt eine JSON-Antwort aller Produkte zurück.

Zuerst erhalten wir Zugriff auf die Variable api, die unsere gesamte PHP-Anwendungsklasse darstellt. Wir verwenden die Klasse, um Antworten zurückzugeben und auf die an unsere API gesendeten Daten zuzugreifen.

So wählen Sie eine einzelne Spalte aus der Datenbank aus: product_id

$ sql-> select ("product.`product_id");

So wählen Sie mehrere Spalten aus:

$ sql-> select ("product.`product_id", product.`name ");

Um diese Route zu aktivieren, registrieren wir den Endpunkt, der zum Abrufen der Produkte verwendet wird.

$ api-> get ("/ products?", "\ BestShop \ v1 \ Product: getProducts") -> name ("get_products");

Der -> Name () ist nicht obligatorisch. Es gibt Zeiten, in denen Sie es verwenden müssen. Wenn Sie mehr wissen möchten, hinterlassen Sie unten einen Kommentar.

Ausgabe

Sie müssen POSTMAN verwenden, um unsere API zu testen. Laden Sie hier Ihre Version von POSTMAN herunter.

Starten Sie POSTMAN. Geben Sie Folgendes als Anforderungs-URL ein.

http: // localhost / api / v1 / products

Klicken Sie auf die blaue Schaltfläche "Senden".

Unten wird die Ausgabe angezeigt, wenn Produktdaten vorhanden sind.

Wenn die Datenbank keine Produkte enthält, ist der Produktschlüssel in der Antwort leer. Es ist immer gut, die Struktur Ihrer Antwort beizubehalten, wenn Daten vorhanden sind und nicht. Es sei denn, bei der Anfrage ist ein Fehler aufgetreten. In einer solchen Situation werden wir "Erfolg" zurückgeben: mit einem Fehlercode oder einer Fehlermeldung. Der Entwickler muss selbst entscheiden, was mit leeren Produkten geschehen soll. Zumindest mache ich das so. Sie können es so tun, wie Sie es für Sie am besten finden.

Neues Produkt hinzufügen - POST-Methode

Um ein neues Produkt hinzuzufügen, verwenden wir die Funktion addProduct in der Produktroute.

/controllers/v1/Product.php

Um ein neues Produkt hinzuzufügen, verwenden wir die POST-Methode. Um auf die an unsere API übermittelten Daten zuzugreifen, verwenden wir einfach:

$ payload = $ api-> request () -> post ();

Wenn wir eine GET-Methode an die API gesendet hätten, verwenden wir:

$ payload = $ api-> request () -> get ();

Der obige Code fügt alle an die API übermittelten Daten in die Variable $ payload ein. Um Daten von der Nutzlastvariablen zu erhalten, verwenden wir den folgenden Code.

$ name = ArrayUtils :: get ($ payload, "name");

Die ArrayUtils-Klasse verfügt über viele hilfreiche Funktionen, die mit Arrays umgehen. Mit dieser Klasse müssen Sie kein endloses isset schreiben und so weiter. So überprüfen Sie, ob ein Schlüssel in einem Array verfügbar ist:

if (ArrayUtils :: has ($ payload, ‘name’)) {/ *** Mach etwas *** /}

Um diese Route zu aktivieren, registrieren wir den Endpunkt, der zum Hinzufügen neuer Produkte verwendet wird. Beachten Sie, dass wir für diesen Endpunkt $ api-> post () verwenden, da wir Übermittlungsdaten über die POST-Methode hinzufügen

$ api-> post ("/ products?", "\ BestShop \ v1 \ Product: addProduct") -> name ("add_products");

Ausgabe

Um zu testen, ob ein Produkt erfolgreich erstellt wurde, öffnen Sie POSTMAN. Geben Sie Folgendes als Anforderungs-URL ein.

http: // localhost / api / v1 / products

Klicken Sie auf die Registerkarte "Körper". Klicken Sie auf "roh". Geben Sie diesen JSON-Wert ein und klicken Sie auf Per POST senden.

Für eine erfolgreiche Anfrage sollte eine ähnliche Antwort angezeigt werden.

Wenn unsere API nicht in der Lage ist, unser Produkt zu erstellen, wird die folgende Antwort ohne das Produkt zurückgegeben. Beachten Sie, dass success jetzt auf false gesetzt ist.

Wenn wir ungültige Daten an die API senden, wird eine Fehlerantwort zurückgegeben. Im unten stehenden Fall ist der Preis des Produktes keine gültige Menge.

Holen Sie sich ein einzelnes / spezifisches Produkt - GET-Methode

Unten ist eine Funktion getProduct, die $ productId als Parameter akzeptiert. Dies wird über den Endpunkt an unsere API übergeben. / api / v1 / products / {product_id}

Ausgabe

Zunächst werden wir ein vorhandenes Produkt testen. Öffnen Sie POSTMAN. Geben Sie Folgendes als Anforderungs-URL über die GET-Methode ein. Klicken Sie auf die blaue Schaltfläche "Senden".

http: // localhost / api / v1 / products / 1

Als nächstes werden wir nach einem Produkt suchen, das nicht existiert. Geben Sie Folgendes als Anforderungs-URL ein. Klicken Sie auf die blaue Schaltfläche "Senden".

http: // localhost / api / v1 / products / 999

Aktualisieren Sie ein einzelnes / spezifisches Produkt - PATCH-Methode

Unten finden Sie eine Funktion updateProduct, die die $ productId des zu aktualisierenden Produkts als Parameter akzeptiert. Dies wird über den Endpunkt an unsere API übergeben. / api / v1 / products / {product_id}.

Für den Zugriff auf die übermittelten Daten verwenden wir:

$ payload = $ api-> request () -> post ();

Ausgabe

Öffnen Sie POSTMAN. Geben Sie Folgendes als Anforderungs-URL ein.

http: // localhost / api / v1 / products / 3

Klicken Sie auf die Registerkarte "Körper". Klicken Sie auf "roh". Geben Sie den folgenden JSON-Wert ein (stellen Sie sicher, dass die ID in Ihrer Datenbank vorhanden ist) und klicken Sie auf die blaue Schaltfläche "Senden" über die PATCH-Methode.

Die Produkt-ID 3 ist nur ein Beispiel. Sie müssen eine Produkt-ID angeben, die in Ihrer Datenbank vorhanden ist. Wenn die angegebene Produkt-ID nicht existiert, wird eine Fehlermeldung angezeigt. Produkt wurde nicht gefunden.

Wenn die Aktualisierung eines Produkts erfolgreich ist, sollten Sie eine ähnliche Antwort erhalten:

Wenn die API das Produkt nicht aktualisiert, erhalten Sie die folgende Antwort.

Löschen eines einzelnen / spezifischen Produkts - DELETE-Methode

Unten finden Sie die Funktion deleteProduct, die die $ productId des zu löschenden Produkts als Parameter akzeptiert. Die product_id wird über den Endpunkt an unsere API übergeben. / api / v1 / products / {product_id}.

Ausgabe

Öffnen Sie POSTMAN. Geben Sie Folgendes als Anforderungs-URL ein.

http: // localhost / api / v1 / products / 1

Klicken Sie auf die Registerkarte "Körper". Klicken Sie auf "raw" und klicken Sie auf die blaue Schaltfläche "Senden" über die DELETE-Methode.

Wenn ein Produkt erfolgreich gelöscht wurde, sollten Sie eine ähnliche Antwort erhalten.

Wenn die API das Produkt nicht löschen kann, sollten Sie die folgende Antwort erhalten.

Und das ist alles, Leute! Wenn Ihnen dieser Beitrag gefallen hat, stellen Sie sicher, dass Sie mir unten ein paar geben, und folgen Sie mir für weitere Artikel. Wenn Sie Fragen oder Feedback haben, hinterlassen Sie bitte einen Kommentar. Eine letzte Sache, wenn Sie an einem fortgeschrittenen Projekt mit API-Authentifizierung und Datei-Upload interessiert sind und viele coole Sachen, lassen Sie es mich wissen.

Um alle Dateien dieses Projekts herunterzuladen oder den Code zu durchsuchen, besuchen Sie das Repository über diesen Github-Link.

Kostenlose Plagiatsprüfung, Zitationsgenerator / Bibliografie-Generator, Diplomarbeitsgenerator, GPA-Rechner, Wörter-zu-Seiten-Konverter und Wörter-zu-Minuten-Konverter für Studenten.