REST API (Representational State Transfer) ist ein Architekturstil für die Entwicklung vernetzter Anwendungen. Sie verwendet HTTP, um CRUD-Vorgänge (Erstellen, Lesen, Aktualisieren und Löschen) für Ressourcen durchzuführen, die in der Regel als JSON- oder XML-Objekte dargestellt werden.
Lesen Sie auch: Was ist eine API?
Grundlagen der REST-API
1. Ressourcen und URIs:
REST-APIs verwenden Uniform Resource Identifiers (URIs), um Ressourcen zu identifizieren und darauf zuzugreifen. Eine Blog-API könnte zum Beispiel die folgenden URIs haben:
/posts
(steht für alle Blogbeiträge)
/posts/1
(steht für eine bestimmte Stelle mit der ID 1)
Lesen Sie auch: Standard Laravel Antwort
Anfrage Anatomie
- URL: URL steht für Uniform Resource Locator und ist die Adresse, mit der nicht nur eine Ressource angegeben wird, sondern auch, wie auf sie zugegriffen werden kann. In einer API kann die URL als Basis-URL bezeichnet werden, was bedeutet, dass dies die Basisadresse ist, die bei jeder Anfrage verwendet wird.
Zum Beispiel:https://api.twt.com
- URI: URI steht für Uniform Resource Identifier, der in der URL verwendet wird, um anzugeben, auf welche Ressource der Client bei einer Anfrage zugreifen möchte. Zum Beispiel::
https://api.twt.com/feed?type=posts&published=true
fügen wir die ?
in der URL, gefolgt von dem Artikel, den wir suchen wollen
Hier teilt der Client dem Server mit, dass die Anfrage Produkte abrufen soll, bei denen "type equals posts" und "published equals true" ist.
URI-Beispiel: https://api.twt.com/posts
Hier lautet die URL: https://api.twt.com
und URI ist: /posts
Daher ist jede URL ein URI, aber nicht alle URIs sind URLs.
- Body Params: Es ist der Körper der Anfrage, der alle Daten enthält, die der Server benötigt, um die Anfrage erfolgreich zu bearbeiten. Er wird daher nur bei Anfragen verwendet, die Informationen senden, wie z. B. Erstellen oder Aktualisieren.
Zum Beispiel:
{
"category": "web",
"published":true,
"no_of_posts":10
}
- Parameter: Parameter sind Informationen, die vom Client in einer Anfrage gesendet werden können, um die Antwort des Servers zu beeinflussen.
Es gibt zwei Arten von Parametern.- Path Parameter:
Es ist eine Variable im URI-Pfad, die dabei hilft, auf eine bestimmte Ressource zu verweisen:
Zum Beispiel,https://api.twt.com/posts/category/web
, Hier kann web der Pfadparameter sein, der eine Variable ist und alles sein kann, so dass diese API mit allen Beiträgen in der Kategorie web antwortet. - Query Parameter:
Es ist eine Variable im URI-Pfad, die bei der Abfrage/Filterung einer Liste von Ressourcen hilft.
- Path Parameter:
- Kopfzeilen: Kopfzeilen ermöglichen die Übermittlung zusätzlicher Informationen in einer Anfrage, wie z. B. Authentifizierungstoken und Inhaltstypen:
Lesen Sie auch: Rest-API in PHP
Zum Beispiel:
Authorization: Bearer {token}
Accept: application/json
Content-Type: application/json
Im obigen Beispiel sendet der Client Header, um die Antwort im gewünschten Format anzufordern, und gibt ein Autorisierungstoken ein, um die Ergebnisse zu erhalten.
2. HTTP-Methoden:
RESTful APIs verwenden Standard-HTTP-Methoden, um Operationen mit Ressourcen durchzuführen:
GET: Ruft eine Ressource oder eine Sammlung von Ressourcen ab. Zum Beispiel, GET /posts
ruft alle Blogbeiträge ab, während GET /posts/1
ruft den Beitrag mit der ID 1 ab.
POST: Erstellen Sie eine neue Ressource. Zum Beispiel, POST /posts
mit einer JSON-Nutzlast erstellt einen neuen Blogeintrag.
PUT oder PATCH: Aktualisieren einer vorhandenen Ressource. Zum Beispiel, PUT /posts/1
oder PATCH /posts/1
mit einer JSON-Nutzlast aktualisiert den Blogbeitrag mit der ID 1.
DELETE: Entfernt eine Ressource. Zum Beispiel, DELETE /posts/1
löscht den Blogeintrag mit der ID 1.
3. Staatenlosigkeit:
REST-APIs sind zustandslos, d. h. jede Anfrage muss alle erforderlichen Informationen enthalten, damit der Server sie verarbeiten kann. Die Server speichern keine Informationen über den Zustand des Clients zwischen den Anfragen.
4. Cache-Fähigkeit:
RESTful APIs können das Caching nutzen, um die Leistung zu verbessern, indem sie eine Kopie einer zuvor abgerufenen Ressource speichern und diese für nachfolgende Anfragen verwenden, wodurch die Serverlast verringert wird.
5. Aushandlung von Inhalten:
Clients und Server können das Format der ausgetauschten Daten aushandeln, in der Regel mithilfe der Kopfzeilen Accept und Content-Type. Gängige Formate sind JSON und XML.
Statuscodes
HTTP-Statuscodes sind dreistellige Zahlen, die das Ergebnis einer HTTP-Anfrage angeben. Sie helfen den Clients zu verstehen, ob die Anfrage erfolgreich war oder ob während der Verarbeitung Probleme aufgetreten sind. Die Statuscodes werden auf der Grundlage der ersten Ziffer in fünf Klassen eingeteilt:
- 1xx (Informativ): Die Anfrage wurde empfangen, und der Server fährt mit der Bearbeitung fort.
- 2xx (Erfolgreich): Die Anfrage wurde erfolgreich empfangen, verstanden und akzeptiert.
- 3xx (Umleitung): Es müssen weitere Maßnahmen ergriffen werden, um die Anfrage abzuschließen, z. B. eine Weiterleitung.
- 4xx (Client-Fehler): Die Anfrage enthält eine fehlerhafte Syntax oder kann vom Server nicht erfüllt werden.
- 5xx (Server-Fehler): Der Server konnte eine gültige Anfrage nicht beantworten.
Lesen Sie auch: Umgang mit CORS-Fehlern
Hier sind einige gängige Statuscodes, die in REST-APIs verwendet werden:
- 200 OK: Die Anfrage war erfolgreich, und der Server hat die angeforderten Daten zurückgegeben.
- 201 Erstellt: Die Anfrage war erfolgreich, und der Server hat daraufhin eine neue Ressource erstellt.
- 204 Kein Inhalt: Die Anfrage war erfolgreich, aber es gibt keine Daten zurück (häufig bei DELETE-Anfragen).
- 400 Schlechte Anfrage: Die Anfrage des Clients ist fehlerhaft formuliert oder enthält ungültige Daten.
- 401 Nicht autorisiert: Der Client muss sich authentifizieren, um auf die angeforderte Ressource zugreifen zu können.
- 403 Verboten: Der Client verfügt nicht über die erforderlichen Berechtigungen für den Zugriff auf die angeforderte Ressource.
- 404 Nicht gefunden: Die angeforderte Ressource konnte auf dem Server nicht gefunden werden.
- 405 Nicht zulässige Methode: Der Client hat eine HTTP-Methode verwendet, die der Server für die angeforderte Ressource nicht unterstützt.
- 409 Konflikt: Die Anfrage konnte aufgrund eines Konflikts mit dem aktuellen Zustand der Ressource nicht abgeschlossen werden (z. B. Aktualisierung einer Ressource mit veralteten Daten).
- 500 Interner Serverfehler: Der Server ist bei der Verarbeitung der Anfrage auf einen Fehler gestoßen.
Lesen Sie auch: API mit Laravel erstellen
Diese Statuscodes helfen REST-API-Clients, Antworten effektiver zu verarbeiten, indem sie das Ergebnis ihrer Anfragen verstehen und auf der Grundlage der erhaltenen Statuscodes geeignete Maßnahmen ergreifen.