Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Web-API-Schnittstelle und ausführlicher Spezifikationen

Detaillierte Erläuterung der Web-API-Schnittstelle und ausführlicher Spezifikationen

angryTom
angryTomOriginal
2019-11-28 14:47:515021Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn