Mock integrations for REST APIs in API Gateway - Amazon API Gateway

Mock integrations for REST APIs in API Gateway

Amazon API Gateway supports mock integrations for API methods. This feature enables API developers to generate API responses from API Gateway directly, without the need for an integration backend. As an API developer, you can use this feature to unblock dependent teams that need to work with an API before the project development is complete. You can also use this feature to provision a landing page for your API, which can provide an overview of and navigation to your API. For an example of such a landing page, see the integration request and response of the GET method on the root resource of the example API discussed in Tutorial: Create a REST API by importing an example.

As an API developer, you decide how API Gateway responds to a mock integration request. For this, you configure the method's integration request and integration response to associate a response with a given status code. For a method with the mock integration to return a 200 response, configure the integration request body mapping template to return the following.

{"statusCode": 200}

Configure a 200 integration response to have the following body mapping template, for example:

{ "statusCode": 200, "message": "Go ahead without me." }

Similarly, for the method to return, for example, a 500 error response, set up the integration request body mapping template to return the following.

{"statusCode": 500}

Set up a 500 integration response with, for example, the following mapping template:

{ "statusCode": 500, "message": "The invoked method is not supported on the API resource." }

Alternatively, you can have a method of the mock integration return the default integration response without defining the integration request mapping template. The default integration response is the one with an undefined HTTP status regex. Make sure appropriate passthrough behaviors are set.

Note

Mock integrations aren't intended to support large response templates. If you need them for your use case, you should consider using a Lambda integration instead.

Using an integration request mapping template, you can inject application logic to decide which mock integration response to return based on certain conditions. For example, you could use a scope query parameter on the incoming request to determine whether to return a successful response or an error response:

{ #if( $input.params('scope') == "internal" ) "statusCode": 200 #else "statusCode": 500 #end }

This way, the method of the mock integration lets internal calls to go through while rejecting other types of calls with an error response.

In this section, we describe how to use the API Gateway console to enable the mock integration for an API method.