Mock-Integration mit der API Gateway-Konsole aktivierten
Die Methode muss in API Gateway verfügbar sein. Folgen Sie den Anweisungen in Tutorial: REST-API mit HTTP-API ohne Proxy-Integration erstellen.
-
Wählen Sie eine API-Ressource aus und erstellen Sie eine Methode. Wählen Sie im Methodenbereich Setup die Option Mock als Integration type und anschließend Save aus.
-
Wählen Sie Method Request aus Method Execution aus. Erweitern Sie URL Query String Parameters. Wählen Sie Add query string aus, um einen
scope
-Abfrageparameter hinzuzufügen. Dadurch wird festgelegt, ob der Aufrufer intern ist oder nicht. -
Wählen Sie unter Method Execution die Option Method Response aus.
-
Fügen Sie unter HTTP-Status
500
hinzu. -
Wählen Sie Integration Request aus Method Execution aus. Erweitern Sie Mapping Templates. Wählen Sie eine application/json-Mapping-Vorlage aus oder fügen Sie eine hinzu. Geben Sie Folgendes in den Vorlageneditor ein:
{ #if( $input.params('scope') == "internal" ) "statusCode": 200 #else "statusCode": 500 #end }
Wählen Sie Save (Speichern) aus.
-
Wählen Sie Integration Response aus Method Execution aus. Erweitern Sie die Antwort 200 und anschließend den Abschnitt Mapping Templates (Zuweisungsvorlagen). Wählen Sie eine Anwendungs-/json-Mapping-Vorlage aus oder fügen Sie diese hinzu. Geben Sie dann die folgenden Antworttext-Mapping-Vorlage in den Vorlageneditor ein.
{ "statusCode": 200, "message": "Go ahead without me" }
Wählen Sie Save (Speichern) aus.
-
Wählen Sie Add integration response aus, um die Antwort „500“ hinzuzufügen. Geben Sie
5\d{2}
in HTTP status regex ein. Wählen Sie für Method response status (Methodenantwortstatus) die Option500
, und wählen Sie dann Save (Speichern) aus. -
Erweitern Sie 5\d\{2\} und erweitern Sie dann Mapping-Vorlagen) und wählen Sie Mapping-Vorlage hinzufügen aus. Geben Sie
application/json
als Content-Type ein und wählen Sie dann das Häkchensymbol aus, um die Einstellung zu speichern. Geben Sie im Vorlageneditor die folgende Antworttext-Mapping-Vorlage ein:{ "statusCode": 500, "message": "The invoked method is not supported on the API resource." }
Wählen Sie Save (Speichern) aus.
-
Wählen Sie Test unter Method Execution. Gehen Sie wie folgt vor:
-
Geben Sie
scope=internal
unter Query Strings (Abfragezeichenfolgen) ein. Wählen SieTest
. Das Testergebnis zeigt Folgendes:Request: /?scope=internal Status: 200 Latency: 26 ms Response Body { "statusCode": 200, "message": "Go ahead without me" } Response Headers {"Content-Type":"application/json"}
-
Geben Sie
scope=public
unterQuery Strings
ein oder lassen Sie das Feld leer. Wählen Sie Test aus. Das Testergebnis zeigt Folgendes:Request: / Status: 500 Latency: 16 ms Response Body { "statusCode": 500, "message": "The invoked method is not supported on the API resource." } Response Headers {"Content-Type":"application/json"}
-
Sie können auch Header in einer Mock-Integrationsantwort zurückgeben, indem Sie der Methodenantwort zunächst einen Header hinzufügen und anschließend ein Header-Mapping in der Integrationsantwort einrichten. Die API Gateway-Konsole setzt die CORS-Unterstützung über die Rückgabe von CORS-fähigen Headern um.