Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der Web-API-Schnittstelle und ausführlicher Spezifikationen
Was ist eine Web-API-Schnittstelle?
Löschen Sie die Anforderungsmethode, geben Sie die vom entsprechenden Backend erforderlichen Parameter an und fordern Sie den URL-Link an, um die Antwortdaten vom Backend abzurufen
Anforderungsmethode: get, Posten, Putten, Patchen. ...
Anfrageparameter: Daten vom Schlüsselwerttyp im JSON- oder XML-Format
Antwortergebnis: Daten vom Schlüsselwerttyp im JSON- oder XML-Format zurückgeben
Wie schreibe ich eine Schnittstelle?
Schreiben Sie den URL-Link unter Bezugnahme auf eine bestimmte Regel (Spezifikation) und formulieren Sie die Anforderungsmethode, die Anforderungsdaten und die Antwortergebnisse gemäß den Regeln
Schnittstellenspezifikation: Webapi-Schnittstellenspezifikation: erholsam
RESTful-Einführung
REST hat nichts mit Technologie zu tun. REST ist die Abkürzung für Representational State Transfer, und seine chinesische Übersetzung lautet „Repräsentationszustandsübertragung“ oder „Präsentationsschicht-Zustandstransformation“.
Domänenname
Verwenden Sie das Schlüsselwort api, um die Schnittstellen-URL zu identifizieren
https://api.example.com https://example.org/api/
Hinweis: Wenn Sie das Wort API sehen, bedeutet dies, dass die Anfrage Der URL-Link ist noch nicht abgeschlossen.
Version der Hintergrunddateninteraktion
1 Geben Sie die Versionsinformationen in die URL ein, z. B.:
https://api.example.com/v1/ https://api.example.com/v2/
v1. v2 stellt verschiedene Datenversionen dar. Beim Rückzug wird davon ausgegangen, dass eine Datenressource mehrere Versionen hat
2. Fügen Sie die Versionsinformationen in den Anforderungsheader ein.
URL-Pfad
Alles im Internet wird als Ressource betrachtet und durch Substantive (im Allgemeinen Pluralform)
https://api.example.com/v1/zoos https://api.example.com/v1/animals https://api.example.com/v1/employees
im URL-Link dargestellt Belohnungen werden nicht angezeigt. Verben, die Ressourcen betreiben.
Fehlerbeispiel: https://api.baidu.com/delete-user
Verben können in speziellen Schnittstellen erscheinen, da diese Die Schnittstelle verfügt im Allgemeinen nicht über eine klare Ressource, oder das Verb ist die Kernbedeutung der Schnittstelle
https://api.baidu.com/place/search https://api.baidu.com/login
Methodenanforderungsmethode
GET: Nehmen Sie eine oder mehrere Ressourcen heraus vom Server)
POST: Eine neue Ressource auf dem Server erstellen
PUT: Die Ressource auf dem Server aktualisieren (der Client stellt die geänderte vollständige Ressource bereit)
PATCH: Aktualisieren Sie die Ressource auf dem Server (Client. Stellen Sie geänderte Attribute auf dem Client bereit)
LÖSCHEN: Ressourcen vom Server löschen
Filterung
Suchbedingungen übergeben in Form von Upload-Parametern in der URL
https://api.example.com/v1/zoos?limit=10:指定返回记录的数量 https://api.example.com/v1/zoos?offset=10:指定返回记录的开始位置 https://api.example.com/v1/zoos?page=2&per_page=100:指定第几页,以及每页的记录数 https://api.example.com/v1/zoos?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序 https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件
Statuscode
200 OK - [GET]: Der Server gibt die vom Benutzer angeforderten Daten erfolgreich zurück ist idempotent.
201 ERSTELLT – [POST/PUT/PATCH]: Der Benutzer hat erfolgreich Daten erstellt oder geändert.
202 Akzeptiert – [*]: Zeigt an, dass eine Anfrage in die Hintergrundwarteschlange eingegeben wurde (asynchrone Aufgabe)
204 KEIN INHALT – [LÖSCHEN]: Der Benutzer hat die Daten erfolgreich gelöscht.
301: Permanente Umleitung
302: Temporäre Umleitung
400 INVALID REQUEST – [POST/PUT/PATCH]: Die vom Benutzer ausgegebene Anfrage hat einen Fehler und der Server nicht fortgesetzt Der Vorgang zum Erstellen oder Ändern von Daten ist idempotent.
401 Nicht autorisiert – [*]: Zeigt an, dass der Benutzer keine Berechtigung hat (Token, Benutzername und Passwort sind falsch).
403 Verboten – [*] Zeigt an, dass der Benutzer autorisiert ist (im Gegensatz zum Fehler 401), der Zugriff jedoch verboten ist.
404 NICHT GEFUNDEN – [*]: Die vom Benutzer ausgegebene Anforderung bezieht sich auf einen Datensatz, der nicht vorhanden ist, und der Server hat den Vorgang nicht ausgeführt. Dieser Vorgang ist idempotent.
406 Nicht akzeptabel – [GET]: Das vom Benutzer angeforderte Format ist nicht verfügbar (z. B. hat der Benutzer das JSON-Format angefordert, aber nur das XML-Format).
410 Gone -[GET]: Die vom Benutzer angeforderte Ressource wurde dauerhaft gelöscht und kann nicht erneut abgerufen werden.
422 Nicht verarbeitbare Entität – [POST/PUT/PATCH] Beim Erstellen eines Objekts ist ein Validierungsfehler aufgetreten.
500 INTERNER SERVERFEHLER – [*]: Ein Serverfehler ist aufgetreten und der Benutzer kann nicht feststellen, ob die gestellte Anfrage erfolgreich war.
Fehlerbehandlung
Wenn der Statuscode 4xx ist, sollten Fehlerinformationen zurückgegeben werden und der Fehler wird als Schlüssel verwendet.
{ error: "Invalid API key" }
Ergebnisse zurückgeben
Für verschiedene Vorgänge sollten die vom Server an den Benutzer zurückgegebenen Ergebnisse den folgenden Spezifikationen entsprechen
GET /collection: Gibt eine Liste von Ressourcenobjekten zurück (Array)
GET /collection/resource: Gibt ein einzelnes Ressourcenobjekt zurück
POST /collection: Gibt ein neu generiertes Ressourcenobjekt zurück
PUT / Sammlung/Ressource: Gibt ein vollständiges Ressourcenobjekt zurück
PATCH /collection/resource: Gibt ein vollständiges Ressourcenobjekt zurück
DELETE /collection/resource: Gibt ein leeres Dokument zurück
{ "status": 0, "msg": "ok", "results":[ { "name":"肯德基(罗餐厅)", "location":{ "lat":31.415354, "lng":121.357339 }, "address":"月罗路2380号", "province":"上海市", "city":"上海市", "area":"宝山区", "street_id":"339ed41ae1d6dc320a5cb37c", "telephone":"(021)56761006", "detail":1, "uid":"339ed41ae1d6dc320a5cb37c" } ... ] }
Hypermedia API
RESTful API wird am besten als Hypermedia implementiert, d. h. in den zurückgegebenen Ergebnissen werden Links zu anderen API-Methoden bereitgestellt, sodass Benutzer wissen, was als nächstes zu tun ist, ohne die Dokumentation zu überprüfen.
{"link": { "rel": "collection https://www.example.com/zoos", "href": "https://api.example.com/zoos", "title": "List of zoos", "type": "application/vnd.yourformat+json" }}
Weitere PHP-bezogene Kenntnisse finden Sie auf der PHP-Chinese-Website!
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Web-API-Schnittstelle und ausführlicher Spezifikationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!