PutGatewayResponse
Creates a customization of a GatewayResponse of a specified response type and status code on the given RestApi.
Request Syntax
PUT /restapis/restapi_id
/gatewayresponses/response_type
HTTP/1.1
Content-type: application/json
{
"responseParameters": {
"string
" : "string
"
},
"responseTemplates": {
"string
" : "string
"
},
"statusCode": "string
"
}
URI Request Parameters
The request uses the following URI parameters.
- response_type
-
The response type of the associated GatewayResponse
Valid Values:
DEFAULT_4XX | DEFAULT_5XX | RESOURCE_NOT_FOUND | UNAUTHORIZED | INVALID_API_KEY | ACCESS_DENIED | AUTHORIZER_FAILURE | AUTHORIZER_CONFIGURATION_ERROR | INVALID_SIGNATURE | EXPIRED_TOKEN | MISSING_AUTHENTICATION_TOKEN | INTEGRATION_FAILURE | INTEGRATION_TIMEOUT | API_CONFIGURATION_ERROR | UNSUPPORTED_MEDIA_TYPE | BAD_REQUEST_PARAMETERS | BAD_REQUEST_BODY | REQUEST_TOO_LARGE | THROTTLED | QUOTA_EXCEEDED | WAF_FILTERED
Required: Yes
- restapi_id
-
The string identifier of the associated RestApi.
Required: Yes
Request Body
The request accepts the following data in JSON format.
- responseParameters
-
Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs.
Type: String to string map
Required: No
- responseTemplates
-
Response templates of the GatewayResponse as a string-to-string map of key-value pairs.
Type: String to string map
Required: No
- statusCode
-
The HTTP status code of the GatewayResponse.
Type: String
Pattern:
[1-5]\d\d
Required: No
Response Syntax
HTTP/1.1 201
Content-type: application/json
{
"defaultResponse": boolean,
"responseParameters": {
"string" : "string"
},
"responseTemplates": {
"string" : "string"
},
"responseType": "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.
- defaultResponse
-
A Boolean flag to indicate whether this GatewayResponse is the default gateway response (
true
) or not (false
). A default gateway response is one generated by API Gateway without any customization by an API developer.Type: Boolean
- responseParameters
-
Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs.
Type: String to string map
- responseTemplates
-
Response templates of the GatewayResponse as a string-to-string map of key-value pairs.
Type: String to string map
- responseType
-
The response type of the associated GatewayResponse.
Type: String
Valid Values:
DEFAULT_4XX | DEFAULT_5XX | RESOURCE_NOT_FOUND | UNAUTHORIZED | INVALID_API_KEY | ACCESS_DENIED | AUTHORIZER_FAILURE | AUTHORIZER_CONFIGURATION_ERROR | INVALID_SIGNATURE | EXPIRED_TOKEN | MISSING_AUTHENTICATION_TOKEN | INTEGRATION_FAILURE | INTEGRATION_TIMEOUT | API_CONFIGURATION_ERROR | UNSUPPORTED_MEDIA_TYPE | BAD_REQUEST_PARAMETERS | BAD_REQUEST_BODY | REQUEST_TOO_LARGE | THROTTLED | QUOTA_EXCEEDED | WAF_FILTERED
- statusCode
-
The HTTP status code for this GatewayResponse.
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 a Gateway Response of a given response type
This example illustrates one usage of PutGatewayResponse.
Sample Request
PUT /restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN HTTP/1.1
Host: beta-apigateway.us-east-1.amazonaws.com
Content-Type: application/json
X-Amz-Date: 20170503T201609Z
Authorization: AWS4-HMAC-SHA256 Credential={access-key-id}/20170503/us-east-1/apigateway/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=15e138ede132fa8c35c665412f407bd23a9993bdc79b3bef22f1ccccc4c6fac1
Cache-Control: no-cache
Postman-Token: 639177c3-627e-3566-a367-7746659d2360
{
"statusCode" : "404",
"responseParameters" : {
"gatewayresponse.header.x-request-path": "method.request.path.petId",
"gatewayresponse.header.Access-Control-Allow-Origin": "'a.b.c'",
"gatewayresponse.header.x-request-query": "method.request.querystring.q",
"gatewayresponse.header.x-request-header": "method.request.header.Accept"
},
"responseTemplates" : {
"application/json": "{\n \"message\": $context.error.messageString,\n \"type\": \"$context.error.responseType\",\n \"stage\": \"$context.stage\",\n \"resourcePath\": \"$context.resourcePath\",\n \"stageVariables.a\": \"$stageVariables.a\",\n \"statusCode\": \"'404'\"\n}"
}
}
Sample Response
{
"_links": {
"curies": {
"href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html",
"name": "gatewayresponse",
"templated": true
},
"self": {
"href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
},
"gatewayresponse:delete": {
"href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
},
"gatewayresponse:put": {
"href": "/restapis/o81lxisefl/gatewayresponses/{response_type}",
"templated": true
},
"gatewayresponse:update": {
"href": "/restapis/o81lxisefl/gatewayresponses/MISSING_AUTHENTICATION_TOKEN"
}
},
"defaultResponse": false,
"responseParameters": {
"gatewayresponse.header.x-request-path": "method.request.path.petId",
"gatewayresponse.header.Access-Control-Allow-Origin": "'a.b.c'",
"gatewayresponse.header.x-request-query": "method.request.querystring.q",
"gatewayresponse.header.x-request-header": "method.request.header.Accept"
},
"responseTemplates": {
"application/json": "{\n \"message\": $context.error.messageString,\n \"type\": \"$context.error.responseType\",\n \"stage\": \"$context.stage\",\n \"resourcePath\": \"$context.resourcePath\",\n \"stageVariables.a\": \"$stageVariables.a\",\n \"statusCode\": \"'404'\"\n}"
},
"responseType": "MISSING_AUTHENTICATION_TOKEN",
"statusCode": "404"
}
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: