

# API 参考
<a name="api-ref"></a>

Amazon API Gateway 提供用于创建和部署您自己的 HTTP 和 WebSocket API 的 API。此外，API Gateway API 在标准 AWS SDK 中提供。

如果您使用的是 AWS SDK 支持的语言，您可能更愿意使用该 SDK，而不是直接使用 API Gateway REST API。开发工具包可简化身份验证、轻松与您的开发环境集成，并可让您轻松访问 API Gateway 命令。

以下是查找 AWS SDK 和 API Gateway REST API 参考文档的位置：
+ [用于 Amazon Web Services 的工具](https://aws.amazon.com/developer/tools/)
+ [Amazon API Gateway REST API 参考](https://docs.aws.amazon.com/apigateway/latest/api/API_Operations.html) 
+ [Amazon API Gateway WebSocket 和 HTTP API 参考](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/api-reference.html)

## API Gateway 服务端点
<a name="api-reference-service-endpoints"></a>

端点是作为 AWS Web 服务入口点的 URL。API Gateway 支持以下端点类型：
+ [IPv4 端点](#api-reference-service-endpoints-ipv4)
+ [双堆栈端点](#api-reference-service-endpoints-ipv6)（同时支持 IPv4 和 IPv6）
+ [FIPS 端点](https://docs.aws.amazon.com/general/latest/gr/rande.html#FIPS-endpoints)

当您发出请求时，您可以指定要使用的端点。如果不指定端点，则默认使用 IPv4 端点。要使用不同的端点类型，您必须在请求中指定。有关如何执行此操作的示例，请参阅[指定端点](#api-reference-service-endpoints-specify-endpoints)。有关可用端点的表，请参阅 [Amazon API Gateway endpoints](https://docs.aws.amazon.com/general/latest/gr/apigateway.html)。

### IPv4 端点
<a name="api-reference-service-endpoints-ipv4"></a>

 IPv4 端点仅支持 IPv4 流量。IPv4 端点适用于所有区域。

 如果您指定通用端点 `apigateway.amazonaws.com`，则我们将端点用于 `us-east-1`。要使用其他区域，请指定其关联端点。例如，如果您指定 `apigateway.us-east-2.amazonaws.com` 为端点，我们会将您的请求定向到 `us-east-2` 端点。

IPv4 端点名称使用以下命名约定：
+ `apigateway.region.amazonaws.com`

例如，`eu-west-1` 区域的 IPv4 端点名称是 `apigateway.eu-west-1.amazonaws.com`。

### 双堆栈（IPv4 和 IPv6）端点
<a name="api-reference-service-endpoints-ipv6"></a>

双堆栈端点同时支持 IPv4 和 IPv6 流量。当您向双堆栈端点发出请求时，端点 URL 解析为 IPv6 或 IPv4 地址，具体取决于您的网络和客户端使用的协议。

双堆栈端点名称使用以下命名约定：
+ `apigateway.region.api.aws`

例如，`eu-west-1` 区域的双堆栈端点名称是 `apigateway.eu-west-1.api.aws`。

### 指定端点
<a name="api-reference-service-endpoints-specify-endpoints"></a>

以下示例显示如何通过将 AWS CLI 用于 `apigateway` 来为 `us-east-2` 区域指定端点。
+ **双堆栈**

  ```
  aws apigateway get-rest-apis --region us-east-2 --endpoint-url https://apigateway.us-east-2.api.aws
  ```
+ **IPv4**

  ```
  aws apigateway get-rest-apis --region us-east-2 --endpoint-url https://apigateway.us-east-2.amazonaws.com
  ```

以下示例显示如何通过将 AWS CLI 用于 `apigatewayv2` 来为 `us-east-2` 区域指定端点。
+ **双堆栈**

  ```
  aws apigatewayv2 get-apis --region us-east-2 --endpoint-url https://apigateway.us-east-2.api.aws
  ```
+ **IPv4**

  ```
  aws apigatewayv2 get-apis --region us-east-2 --endpoint-url https://apigateway.us-east-2.amazonaws.com
  ```

## 在 IAM 策略中使用 IPv6 地址
<a name="api-reference-service-endpoints-dualstack-iam"></a>

如果您使用任何 IAM 用户策略或 API Gateway 资源策略来控制对 API Gateway 或任何 API Gateway API 的访问权限，请确认您的策略已更新为包含 IPv6 地址范围。当客户端开始使用双堆栈端点时，未更新为处理 IPv6 地址的策略可能会影响客户端对 API Gateway 的访问权限。有关使用 IAM 管理访问权限的更多信息，请参阅[适用于 Amazon API Gateway 的 Identity and Access Management](security-iam.md)。

筛选 IP 地址的 IAM 策略使用 [IP 地址条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Conditions_IPAddress)。以下身份策略可让 `54.240.143.*` 范围内的 IP 地址获取有关标识符为 `a123456789` 的 HTTP 或 WebSocket API 的所有资源的信息。将拒绝任何超出此范围的 IP 地址访问有关此 API 中所有资源的信息。由于所有 IPv6 地址都在支持的范围之外，此策略会阻止 IPv6 地址访问有关 API 的信息。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IPAllow",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "apigateway:GET",
      "Resource": "arn:aws:apigateway:us-east-1::/apis/a123456789/*",
      "Condition": {
         "IpAddress": {"aws:SourceIp": "54.240.143.0/24"}
      } 
    } 
  ]
}
```

------

您可以将 API 策略的 `Condition` 元素修改为同时支持 IPv4 (`54.240.143.0/24`) 和 IPv6 (`2001:DB8:1234:5678::/64`) 地址范围，如以下示例所示。您可以使用示例中所示的相同类型的 `Condition` 块来更新 IAM 用户策略和 API Gateway 资源策略。

```
1.        "Condition": {
2.          "IpAddress": {
3.             "aws:SourceIp": [
4.               "54.240.143.0/24",
5.                "2001:DB8:1234:5678::/64"
6.              ]
7.           }
8.         }
```