Amazon API Gateway REST API Reference

methodresponse:put

Set up the method response.

HTTP Request

PUT /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/responses/{status_code}

Template Variable

Request Body

{
  "responseParameters" : {
    "String" : "Boolean"
  },
  "responseModels" : {
    "String" : "String"
  }
}

Request Body Fields

The request accepts the following fields in JSON format.

  • responseParameters
  • A key-value map specifying required or optional response parameters that Amazon API Gateway can send back to the caller. A key defines a method response header name and the associated value is a Boolean flag indicating whether the method response parameter is required or not. The method response header names must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The response parameter names defined here are available in the integration response to be mapped from an integration response header expressed in integration.response.header.{name}, a static value enclosed within a pair of single quotes (e.g., 'application/json'), or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression}, where JSON-expression is a valid JSON expression without the $ prefix.)

  • responseModels
  • Specifies the Model resources used for the response's content type. Response models are represented as a key/value map, with a content type as the key and a Model name as the value.

Response

MethodResponse

Remarks

Example: Set up a method response with an optional Content-Type header

Request

The following example request sets up a method response on the GET method of the root resource.

PUT /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200 HTTP/1.1
Content-Type: application/json
Host: apigateway.us-east-1.amazonaws.com
X-Amz-Date: 20160603T004142Z
Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature={sig4_hash}

{
    "responseParameters" : {
        "method.response.header.Content-Type" : false
    },
    "responseModels" : {
        "application/json" : "Empty"
    }
}
Response

The successful response returns 201 Created status code and a payload similar to the following.

{
  "_links": {
    "curies": {
      "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html&quot;,
      "name": "methodresponse",
      "templated": true
    },
    "self": {
      "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200",
      "title": "200"
    },
    "methodresponse:delete": {
      "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
    },
    "methodresponse:update": {
      "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200"
    }
  },
  "responseModels": {
    "application/json": "Empty"
  },
  "responseParameters": {
    "method.response.header.Content-Type": false
  },
  "statusCode": "200"
}

If you defined a mapping template in the integration response to map a JSON payload to an XML body, you can reassign the method.response.header.Content-Type header value to be 'application/xml'.

See Also

AWS CLI