Standardantworten als API-Gateway-Backend hinzufügen
Erfahren Sie, wie Sie mit API Gateway einen Pfad zu einem Backend für Aktienantworten definieren.
Häufig möchten Sie prüfen, ob eine API erfolgreich in einem API-Gateway bereitgestellt wurde, ohne einen tatsächlichen Backend-Service einrichten zu müssen. Eine Lösung besteht darin, eine Route in der API-Deployment-Spezifikation zu definieren, die einen Pfad zu einem "Dummy"-Backend aufweist. Beim Empfang einer Anforderung an diesen Pfad fungiert das API-Gateway selbst als Backend und gibt eine von Ihnen angegebene Standardantwort zurück.
Gleichermaßen kann es in einem Produktions-Deployment vorkommen, dass ein bestimmter Pfad für eine Route konsistent die gleiche Standardantwort zurückgeben soll, ohne dass eine Anforderung an ein Backend gesendet wird. Beispiel: Sie möchten, dass ein Aufruf an einen Pfad immer einen bestimmten HTTP-Statuscode in der Antwort zurückgibt.
Mit dem API-Gateway-Service können Sie einen Pfad zu einem Standardantwort-Backend definieren, das immer Folgendes zurückgibt:
- Denselben HTTP-Statuscode
- Dieselben HTTP-Headerfelder (Name/Wert-Paare)
- Denselben Inhalt im Hauptteil der Antwort
Beachten Sie bei der Definition von Standardantworten und Standardantwort-Backends die folgenden Einschränkungen:
- Ein Headername darf die Länge von 1 KB nicht überschreiten
- Ein Headerwert darf die Länge von 4 KB nicht überschreiten
- Eine Hauptteilantwort darf die Länge von 5 KB nicht überschreiten (einschließlich Codierung)
- Die Definition eines Standardantwort-Backends darf nicht mehr als 50 Headerfelder enthalten
Sie können Standardantwort-Backends zu einer API-Deployment-Spezifikation hinzufügen, indem Sie:
- die Konsole verwenden
- eine JSON-Datei bearbeiten
Mit der Konsole Standardantworten zu einer API-Deployment-Spezifikation hinzufügen
So fügen Sie mit der Konsole Standardantworten zu einer API-Deployment-Spezifikation hinzu:
-
Erstellen oder aktualisieren Sie ein API-Deployment mit der Konsole, wählen Sie die Option Völlig neu aus, und geben Sie auf der Seite Basisinformationen Details ein.
Weitere Informationen finden Sie unter API durch das Erstellen eines API-Deployment in einem API-Gateway bereitstellen und API-Gateway aktualisieren.
-
Geben Sie auf der Seite Authentifizierung die Authentifizierungsoptionen an.
Weitere Informationen zu Authentifizierungsoptionen finden Sie unter Hinzufügen von Authentifizierung und Autorisierung zu API-Deployments.
-
Erstellen Sie auf der Seite Routen eine neue Route, und geben Sie Folgendes an:
-
Pfad: Einen Pfad zum Backend-Service für API-Aufrufe, die die aufgeführten Methoden verwenden. Beachten Sie, dass der von Ihnen angegebene Routenpfad:
- relativ zum Deployment-Pfadpräfix ist (siehe API durch das Erstellen eines API-Deployments in einem API-Gateway bereitstellen)
- einen Schrägstrich ( / ) vorangestellt haben muss. Es kann nur ein einzelner Schrägstrich verwendet werden
- mehrere Schrägstriche enthalten (sofern diese nicht aufeinander folgen) und mit einem Schrägstrich enden kann
- alphanumerische Zeichen in Großbuchstaben und Kleinbuchstaben enthalten kann
- die folgenden Sonderzeichen enthalten kann:
$ - _ . + ! * ' ( ) , % ; : @ & =
- Parameter und Platzhalter enthalten kann (siehe Pfadparameter und Platzhalter zu Routenpfaden hinzufügen)
- Methoden: Eine oder mehrere Methoden, die vom Backend-Service akzeptiert werden. Beispiel:
GET, PUT
. -
Ein einzelnes Backend hinzufügen oder Mehrere Backends hinzufügen: Gibt an, ob alle Anforderungen an dasselbe Backend weitergeleitet oder Anforderungen entsprechend der eingegebenen Kontextvariable und Regeln an verschiedene Backends weitergeleitet werden sollen.
Bei diesen Anweisungen wird davon ausgegangen, dass Sie ein einzelnes Backend verwenden möchten. Wählen Sie daher Ein einzelnes Backend hinzufügen aus. Wenn Sie alternativ andere Backends verwenden möchten, wählen Sie Mehrere Backends hinzufügen aus, und befolgen Sie die Anweisungen unter Dynamische Backend-Auswahl mit der Konsole zu einer API-Deployment-Spezifikation hinzufügen.
- Backend-Typ: Den Typ des Backend-Service als
Stock Response
. - Statuscode: Einen beliebigen gültigen HTTP-Antwortcode. Beispiel:
200
-
Hauptteil: Gibt optional den Inhalt des Antworthauptteils in einem entsprechenden Format an. Beispiel:
- Wenn Sie einen Headernamen und Headerwert von
Content-Type
bzw.text/plain
angeben, könnte der Antwortbody"Hello world"
lauten. - Wenn Sie einen Headernamen und Headerwert von
Content-Type
bzw.application/json
angeben, könnte der Antwortbody{"username": "john.doe"}
lauten.
Beachten Sie, dass der Antworthauptteil die Länge von 5 KB nicht überschreiten darf (einschließlich Codierung).
- Wenn Sie einen Headernamen und Headerwert von
-
Headername und Headerwert: Optional können Sie den Namen eines HTTP-Antwortheaders und dessen Wert angeben. Beispiel: Einen Namen von
Content-Type
und einen Wert vonapplication/json
. Sie können mehrere Paare aus Headername und -wert angeben (maximal 50). Beachten Sie in jedem Fall Folgendes:- Der Headername darf die Länge von 1 KB nicht überschreiten
- Der Headerwert darf die Länge von 4 KB nicht überschreiten
In diesem Beispiel gibt eine Anforderung an den
/test
-Pfad einen 200-Statuscode und eine JSON-Payload im Hauptteil der Antwort zurück.Feld: Eingeben: Pfad: /test
Methoden: GET
Backend-Typ: Stock Response
Statuscode: 200
Body: {"username": "john.doe"}
Header-Name: Content-Type
Headerwert: application/json
In diesem Beispiel gibt eine Anforderung an den
/test-redirect
-Pfad einen 302-Statuscode und eine temporäre URL imLocation
-Header der Antwort zurück.Feld: Eingeben: Pfad: /test-redirect
Methoden: GET
Backend-Typ: Stock Response
Statuscode: 302
Body: n/v Header-Name: Location
Headerwert: http://www.example.com
-
- (Optional) Wählen Sie Weitere Route aus, um Details zusätzlicher Routen einzugeben.
- Wählen Sie Weiter aus, um die Details zu prüfen, die Sie für das API-Deployment eingegeben haben.
- Wählen Sie Erstellen oder Änderungen speichern aus, um das API-Deployment zu erstellen oder zu aktualisieren.
- (Optional) Bestätigen Sie, dass die API erfolgreich bereitgestellt wurde, indem Sie sie aufrufen (siehe In einem API-Gateway bereitgestellte API aufrufen).
JSON-Datei zum Hinzufügen von Standardantworten zu einer API-Deployment-Spezifikation bearbeiten
So fügen Sie Standardantworten zu einer API-Deployment-Spezifikation in einer JSON-Datei hinzu:
-
Bearbeiten Sie mit Ihrem bevorzugten JSON-Editor die vorhandene API-Deployment-Spezifikation, der Sie ein Standardantwort-Backend hinzufügen möchten, oder erstellen Sie eine neue API-Deployment-Spezifikation (siehe API-Deployment-Spezifikation erstellen).
Beispiel: Die folgende Basisspezifikation für das API-Deployment definiert eine einfache serverlose Hello World-Funktion in OCI Functions als einzelnes Backend:
{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } } ] }
-
Fügen Sie im
routes
-Abschnitt einen neuenpath
-Abschnitt für ein Standardantwort-Backend ein.{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } }, { "path": "<api-route-path>", "methods": ["<method-list>"], "backend": { "type": "STOCK_RESPONSE_BACKEND", "status": <http-response-code>, "headers": [{ "name": "<header-name>", "value": "<header-value>" }], "body": "<body-content>" } } ] }
Dabei gilt:
-
<api-route-path>
gibt einen Pfad zum Standardantwort-Backend für API-Aufrufe an, die die aufgeführten Methoden verwenden. Beachten Sie, dass der von Ihnen angegebene Routenpfad:- relativ zum Deployment-Pfadpräfix ist (siehe API durch das Erstellen eines API-Deployments in einem API-Gateway bereitstellen)
- einen Schrägstrich ( / ) vorangestellt haben muss. Es kann nur ein einzelner Schrägstrich verwendet werden
- mehrere Schrägstriche enthalten (sofern diese nicht aufeinander folgen) und mit einem Schrägstrich enden kann
- alphanumerische Zeichen in Großbuchstaben und Kleinbuchstaben enthalten kann
- die folgenden Sonderzeichen enthalten kann:
$ - _ . + ! * ' ( ) , % ; : @ & =
-
Parameter und Platzhalter enthalten kann (siehe Pfadparameter und Platzhalter zu Routenpfaden hinzufügen)
<method-list>
gibt eine oder mehrere Methoden, die vom Standardantwort-Backend akzeptiert werden, durch Komma getrennt an. Beispiel:"GET, PUT"
."type": "STOCK_RESPONSE_BACKEND"
gibt an, dass das API-Gateway selbst als Backend fungiert und die von Ihnen definierte Standardantwort (Statuscode, Headerfelder und Hauptteilinhalt) zurückgibt.<http-response-code>
ist ein beliebiger gültiger HTTP-Antwortcode. Beispiel:200
"name": "<header-name>", "value": "<header-value>"
gibt optional den Namen eines HTTP-Antwortheaders und dessen Wert an. Beispiel:"name": "Content-Type", "value":"application/json"
. Sie können mehrere"name": "<header-name>", "value": "<header-value>"
-Paare imheaders:
-Abschnitt angeben (maximal 50). Beachten Sie in jedem Fall Folgendes:<header-name>
darf die Länge von 1 KB nicht überschreiten<header-value>
darf die Länge von 4 KB nicht überschreiten
"body": "<body-content>"
gibt optional den Inhalt des Antworthauptteils in einem entsprechenden Format an. Beispiel:- Wenn der
Content-Type
-Headertext/plain
lautet, könnte der Antworthauptteil"body": "Hello world"
sein. - Wenn der
Content-Type
-Headerapplication/json
lautet, könnte der Antworthauptteil"body": "{\"username\": \"john.doe\"}"
sein. Beachten Sie bei einer JSON-Antwort, dass Anführungszeichen in der Antwort mit einem umgekehrten Schrägstrich (\
) maskiert werden müssen.
Beachten Sie, dass
<body-content>
die Länge von 5 KB nicht überschreiten darf (einschließlich Codierung).- Wenn der
In diesem Beispiel gibt eine Anforderung an den
/test
-Pfad einen 200-Statuscode und eine JSON-Payload im Hauptteil der Antwort zurück.{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } }, { "path": "/test", "methods": ["GET"], "backend": { "type": "STOCK_RESPONSE_BACKEND", "status": 200, "headers": [{ "name": "Content-Type", "value": "application/json" }], "body" : "{\"username\": \"john.doe\"}" } } ] }
In diesem Beispiel gibt eine Anforderung an den
/test-redirect
-Pfad einen 302-Statuscode und eine temporäre URL imLocation
-Header der Antwort zurück. Dieses Beispiel zeigt auch, dass Sie eine API-Deployment-Spezifikation mit nur einer Route zu einem Backend vom Typ STOCK_RESPONSE_BACKEND erstellen können.{ "routes": [ { "path": "/test-redirect", "methods": ["GET"], "backend": { "type": "STOCK_RESPONSE_BACKEND", "status": 302, "headers": [{ "name": "Location", "value": "http://www.example.com" }] } } ] }
-
- Speichern Sie die JSON-Datei, die die API-Deployment-Spezifikation enthält.
-
Verwenden Sie die API-Deployment-Spezifikation, wenn Sie ein API-Deployment wie folgt erstellen oder aktualisieren:
- Durch Angabe der JSON-Datei in der Konsole bei Auswahl der Option Vorhandene API hochladen
- Durch Angabe der JSON-Datei in einer Anforderung an die REST-API von API-Gateway
Weitere Informationen finden Sie unter API durch das Erstellen eines API-Deployment in einem API-Gateway bereitstellen und API-Gateway aktualisieren.
- (Optional) Bestätigen Sie, dass die API erfolgreich bereitgestellt wurde, indem Sie sie aufrufen (siehe In einem API-Gateway bereitgestellte API aufrufen).