PutIntegrationResponse - Amazon API Gateway

PutIntegrationResponse

Represents a put integration.

Request Syntax

PUT /restapis/restapi_id/resources/resource_id/methods/http_method/integration/responses/status_code HTTP/1.1 Content-type: application/json { "contentHandling": "string", "responseParameters": { "string" : "string" }, "responseTemplates": { "string" : "string" }, "selectionPattern": "string" }

URI Request Parameters

The request uses the following URI parameters.

http_method

Specifies a put integration response request's HTTP method.

Required: Yes

resource_id

Specifies a put integration response request's resource identifier.

Required: Yes

restapi_id

The string identifier of the associated RestApi.

Required: Yes

status_code

Specifies the status code that is used to map the integration response to an existing MethodResponse.

Pattern: [1-5]\d\d

Required: Yes

Request Body

The request accepts the following data in JSON format.

contentHandling

Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:

If this property is not defined, the response payload will be passed through from the integration response to the method response without modification.

Type: String

Valid Values: CONVERT_TO_BINARY | CONVERT_TO_TEXT

Required: No

responseParameters

A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name must be a valid and unique response header name and JSON-expression a valid JSON expression without the $ prefix.

Type: String to string map

Required: No

responseTemplates

Specifies a put integration response's templates.

Type: String to string map

Required: No

selectionPattern

Specifies the selection pattern of a put integration response.

Type: String

Required: No

Response Syntax

HTTP/1.1 201 Content-type: application/json { "contentHandling": "string", "responseParameters": { "string" : "string" }, "responseTemplates": { "string" : "string" }, "selectionPattern": "string", "statusCode": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 201 response.

The following data is returned in JSON format by the service.

contentHandling

Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:

If this property is not defined, the response payload will be passed through from the integration response to the method response without modification.

Type: String

Valid Values: CONVERT_TO_BINARY | CONVERT_TO_TEXT

responseParameters

A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name is a valid and unique response header name and JSON-expression is a valid JSON expression without the $ prefix.

Type: String to string map

responseTemplates

Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.

Type: String to string map

selectionPattern

Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the .+ regex to match error response. However, make sure that the error response does not contain any newline (\n) character in such cases. If the back end is an AWS Lambda function, the AWS Lambda function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched.

Type: String

statusCode

Specifies the status code that is used to map the integration response to an existing MethodResponse.

Type: String

Pattern: [1-5]\d\d

Errors

For information about the errors that are common to all actions, see Common Errors.

BadRequestException

The submitted request is not valid, for example, the input is incomplete or incorrect. See the accompanying error message for details.

HTTP Status Code: 400

ConflictException

The request configuration has conflicts. For details, see the accompanying error message.

HTTP Status Code: 409

LimitExceededException

The request exceeded the rate limit. Retry after the specified time period.

HTTP Status Code: 429

NotFoundException

The requested resource is not found. Make sure that the request URI is correct.

HTTP Status Code: 404

TooManyRequestsException

The request has reached its throttling limit. Retry after the specified time period.

HTTP Status Code: 429

UnauthorizedException

The request is denied because the caller has insufficient permissions.

HTTP Status Code: 401

Examples

Set up an integration response

This example illustrates one usage of PutIntegrationResponse.

Sample Request

PUT /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160602T233930Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160602/us-east-1/apigateway/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature={sig4_hash} { "selectionPattern" : "2\d{2}", "responseParameters" : { "method.response.header.Content-Type" : "'application/json'" } }

Sample Response

{ "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/json'" }, "selectionPattern": "2\d{2}", "statusCode": "200" }

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: