集成传递行为
如果没有代理集成,当方法请求携带负载,并且 Content-Type
标头不匹配任何指定的映射模板或未定义任何映射模板时,您可以选择将客户端提供的请求负载通过集成请求传递到后端而不进行转换。此过程称为集成传递。
对于代理集成,API Gateway 会将整个请求传递到您的后端,并且您不能修改传递行为。
传入请求的实际传递行为由您在集成请求设置期间为指定映射模板选择的选项以及客户端在传入请求中设置的 Content Type 标头确定。这里有三个选项:
- 当没有模板与请求的 Content-Type 标头匹配时
如果您希望在方法请求内容类型不匹配任何与映射模板关联的内容类型时,将方法请求正文通过集成请求发送到后端而不进行转换,则选择此选项。
调用 API Gateway API 时,您通过将
WHEN_NO_MATCH
设置为集成的passthroughBehavior
属性值来选择此选项。- 未定义任何模板时(推荐)
-
如果您希望在集成请求中未定义映射模板时,将方法请求正文通过集成请求发送到后端而不进行转换,则选择此选项。如果选择此选项时定义了模板,则会以“HTTP 415 Unsupported Media Type”响应拒绝未映射内容类型的方法请求。
调用 API Gateway API 时,您通过将
WHEN_NO_TEMPLATES
设置为集成的passthroughBehavior
属性值来选择此选项。 - 从不
-
如果您不希望在集成请求中未定义映射模板时,将方法请求正文通过集成请求发送到后端而不进行转换,则选择此选项。如果选择此选项时定义了模板,则会以“HTTP 415 Unsupported Media Type”响应拒绝未映射内容类型的方法请求。
调用 API Gateway API 时,您通过将
NEVER
设置为集成的passthroughBehavior
属性值来选择此选项。
以下示例说明了可能的传递行为。
示例 1:application/json
内容类型的集成请求中定义了一个映射模板。
Content-Type 标头\选定的传递选项 | WHEN_NO_MATCH |
WHEN_NO_TEMPLATES |
NEVER |
---|---|---|---|
无(默认为 application/json ) |
使用模板转换请求负载。 | 使用模板转换请求负载。 | 使用模板转换请求负载。 |
application/json |
使用模板转换请求负载。 | 使用模板转换请求负载。 | 使用模板转换请求负载。 |
application/xml |
请求负载未转换,并按原样发送到后端。 | 请求被拒绝,得到 HTTP 415 Unsupported Media
Type 响应。 |
请求被拒绝,得到 HTTP 415 Unsupported Media
Type 响应。 |
示例 2:application/xml
内容类型的集成请求中定义了一个映射模板。
Content-Type 标头\选定的传递选项 | WHEN_NO_MATCH |
WHEN_NO_TEMPLATES |
NEVER |
---|---|---|---|
无(默认为 application/json ) |
请求负载未转换,并按原样发送到后端。 | 请求被拒绝,得到 HTTP 415 Unsupported Media
Type 响应。 |
请求被拒绝,得到 HTTP 415 Unsupported Media
Type 响应。 |
application/json |
请求负载未转换,并按原样发送到后端。 | 请求被拒绝,得到 HTTP 415 Unsupported Media
Type 响应。 |
请求被拒绝,得到 HTTP 415 Unsupported Media
Type 响应。 |
application/xml |
使用模板转换请求负载。 | 使用模板转换请求负载。 | 使用模板转换请求负载。 |