Mock-Integration mit der API Gateway-Konsole aktivierten - Amazon API Gateway

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.

  1. 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.

  2. 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.

  3. Wählen Sie unter Method Execution die Option Method Response aus.

  4. Fügen Sie unter HTTP-Status 500 hinzu.

  5. 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.

  6. 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.

  7. 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 Option 500, und wählen Sie dann Save (Speichern) aus.

  8. 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.

  9. Wählen Sie Test unter Method Execution. Gehen Sie wie folgt vor:

    1. Geben Sie scope=internal unter Query Strings (Abfragezeichenfolgen) ein. Wählen Sie Test. 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"}
    2. Geben Sie scope=public unter Query 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.