

# 在 API Gateway 中设置集成响应
<a name="api-gateway-integration-settings-integration-response"></a>

 对于非代理集成，您必须设置至少一个集成响应，并使其作为默认响应，将后端返回的结果传递到客户端。您可以选择按原样传递结果，或者在具有不同格式时，将集成响应数据转换为方法响应数据。

对于代理集成，API Gateway 会自动将后端输出传递到客户端作为 HTTP 响应。您无需设置集成响应或方法响应。

要设置集成响应，您可以执行以下必需任务和 （可选） 任务：

1.  指定集成响应数据要映射到的方法响应的 HTTP 状态代码。该项为必填项。

1.  定义正则表达式以选择要由此集成响应表示的后端输出。如果您将此项留空，则响应为拥有捕获任何尚未配置响应的默认响应。

1.  如果需要，声明由键/值对组成的映射，用于将指定的集成响应参数映射到指定的方法响应参数。

1. 如果需要，请添加正文映射模板来将指定集成响应负载转换为指定方法响应负载。

1.  如果需要，指定如何处理二进制负载的类型转换。

集成响应是封装了后端响应的 HTTP 响应。对于 HTTP 端点，后端响应是 HTTP 响应。集成响应状态代码可以采用后端返回的状态代码，集成响应正文是后端返回的负载。对于 Lambda 端点，后端响应是从 Lambda 函数返回的输出。借助 Lambda 集成，Lambda 函数输出作为 `200 OK` 响应返回。负载可以包含 JSON 数据格式的结果，包括 JSON 字符串或 JSON 对象，或者作为 JSON 对象的错误消息。您可以将正则表达式分配到 [selectionPattern](https://docs.amazonaws.cn/apigateway/latest/api/API_IntegrationResponse.html#selectionPattern) 属性，以将错误响应映射到适当的 HTTP 错误响应。有关 Lambda 函数错误响应的更多信息，请参阅[处理 API Gateway 中的 Lambda 错误](handle-errors-in-lambda-integration.md)。对于 Lambda 代理集成，Lambda 函数必须返回以下格式的输出：

```
{
    statusCode: "...",            // a valid HTTP status code
    headers: { 
        custom-header: "..."      // any API-specific custom header
    },
    body: "...",                  // a JSON string.
    isBase64Encoded:  true|false  // for binary support
}
```

不需要将 Lambda 函数响应映射到其正确的 HTTP 响应。

要将结果返回到客户端，请设置集成响应将端点响应按原样传递到对应的方法响应。或者，您可以将端点响应数据映射到方法响应数据。可以映射的响应数据包括响应状态代码、响应标头参数和响应正文。如果没有为返回的状态代码定义方法响应，API Gateway 返回 500 错误。有关更多信息，请参阅 [针对 API Gateway 中的 REST API 覆盖 API 的请求和响应参数以及状态代码](apigateway-override-request-response-parameters.md)。

