

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 提出 API 请求
<a name="making-api-requests"></a>

的查询请求 Amazon Resource Groups 是使用 HTTP 动词（例如或）的 HTTP `GET` 或 HTTPS 请求`POST`。

## 资源组终端节点
<a name="cw-endpoints"></a>

终*端节点*是用作 Web 服务入口点的 URL。在提出减少延迟的请求时，您可以选择适当的 Amazon Web Services 区域 终端节点。有关资源组使用的终端节点的信息，请参见[Amazon Resource Groups](https://docs.amazonaws.cn/general/latest/gr/arg.html)中的*Amazon Web Services 一般参考*。

## 查询参数
<a name="query-parameters"></a>

每个查询请求都必须包含一些常用参数来处理身份验证和操作选择。有关更多信息，请参阅 *Amazon Resource Groups API 参考[中的](https://docs.amazonaws.cn/ARG/latest/APIReference/CommonParameters.html)常用参数*。

某些 API 操作采用参数列表。这些列表使用以下表示法指定：

```
param.member.n
```

 的值`n`是从 1 开始的整数。所有参数列表都必须遵循此表示法，包括仅包含一个参数的列表。查询参数列表如下例所示。

```
1. &attribute.member.1=this
2. &attribute.member.2=that
```

## 请求标识符
<a name="RequestId-common-data-type"></a>

在来自 Amazon 查询 API 的每个响应中，都有一个`ResponseMetadata`元素，其中包含一个`RequestId`元素。此字符串是用于提供跟踪信息的 Amazon 唯一标识符。尽管`RequestId`它是每个响应的一部分，但为了提高可读性和减少冗余，它并未在各个 API 文档页面上列出。

## 查询 API 身份验证
<a name="query-authentication"></a>

您可以通过 HTTP 或 HTTPS 发送查询请求。无论使用哪种协议，都必须在每个查询请求中包含签名。有关创建和加入签名的更多信息，请参阅[中的](https://docs.amazonaws.cn/general/latest/gr/signing_aws_api_requests.html)签名 Amazon API 请求*Amazon Web Services 一般参考*。

## 可用的库
<a name="using-libraries"></a>

Amazon 为喜欢使用特定语言的 API 而不是命令行工具和查询 API 来构建应用程序的软件开发人员提供库、示例代码、教程和其他资源。这些库提供基本功能（未包含在 API 中），例如请求身份验证、请求重试和错误处理，因此更易于上手。资源组、库和资源适用于以下语言和平台：
+  [适用于 Go 的 Amazon SDK](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/resourcegroups) 
+  [Amazon SDK for Java 2.x](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/resourcegroups/package-summary.html) 
+  [适用于 Java 的 Amazon SDK 1.x](https://docs.amazonaws.cn/AWSJavaSDK/latest/javadoc/com/amazonaws/services/resourcegroups/package-summary.html) 
+  [适用于 JavaScript 的 Amazon SDK](https://docs.amazonaws.cn/AWSJavaScriptSDK/v3/latest/clients/client-resource-groups/index.html) 
+  [Amazon 用于输入的 JavaScript SDK Node.js ](https://docs.amazonaws.cn/AWSJavaScriptSDK/v3/latest/clients/client-resource-groups/index.html) 
+  [适用于 .NET 的 Amazon SDK](https://docs.amazonaws.cn/sdkfornet/v3/apidocs/items/ResourceGroups/NResourceGroups.html) 
+  [适用于 PHP 的 Amazon SDK](https://docs.amazonaws.cn/aws-sdk-php/v3/api/api-resource-groups-2017-11-27.html) 
+  [Amazon SDK for Python (Boto)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/resource-groups.html) 
+  [适用于 Ruby 的 Amazon SDK](https://github.com/aws/aws-sdk-ruby/tree/version-3/apis/resource-groups/2017-11-27) 
+ [适用于 Rust 的 Amazon SDK](https://crates.io/crates/aws-sdk-resourcegroups)

有关所有语言的库和示例代码的更多信息，请参阅[示例代码和库](https://docs.amazonaws.cn/code-library)。

## 使用 P `OST` 方法发出 API 请求
<a name="CloudWatch-API-requests-using-post-method"></a>

如果您不使用其中一个 Amazon SDK，则可以使用请求方法通过 HTTP 发出资源组`POST`请求。该`POST`方法要求您在请求标头中指定操作，并在请求正文中以 JSON 格式提供操作数据。


| 标头名称 | 标头值 | 
| --- | --- | 
| Host |  Amazon Resource Groups 终端节点。例如：`tagging.us-east-1.amazonaws.com` | 
| X-Amz-Date | 您必须在 HTTP 日期标头或 Amazon * x-am * z-date 标头中提供时间戳。某些 HTTP 客户端库不允许您设置日期标头。当存在 * x-amz-date * 标头时，系统会在请求身份验证期间忽略任何 Date 标头。<br />*x-amz-date * 标头必须以 ISO 8601 基本格式指定。例如：`20130315T092054Z` | 
| Authorization | 一组 Amazon 用于确保请求的有效性和真实性的授权参数。有关构造此标头的更多信息，请参阅[中的](https://docs.amazonaws.cn/general/latest/gr/signature-version-4.html)签名版本 4 签名流程*Amazon Web Services 一般参考*。 | 
| X-Amz-Target | 指定资源组命名空间和版本以及要执行的操作。<br />`ResourceGroupsTaggingAPI_20170126.{{API_Name}}` 对于资源组，请始终使用版本**`20170126`**。 <br />例如，要调用该`GetTagValues`操作，请使用以下目标值。<br />`ResourceGroupsTaggingAPI_20170126.GetTagValues` | 
| Content-Type | 指定输入格式。使用以下值。<br />`application/json` | 
| Accept | 指定响应格式。使用以下值。<br />`application/json` | 
| Content-Length | 有效载荷的大小（以字节为单位）。 | 
| Content-Encoding | 指定输入和输出的编码格式。使用以下值。<br />`amz-1.0` | 

以下是 HTTP 请求的示例标头，该请求用于创建包含所有已标记资源的资源组`Stage=Test`。在此示例中，为了便于`Authorization`阅读，此处对该行进行了换行。不要把它写在你的实际请求中。

```
POST / HTTP/1.1
Host: resource-groups.us-east-1.amazonaws.com
X-Amz-Date: 20180112T092034Z
Accept-Encoding: identity
Authorization: AWS4-HMAC-SHA256 Credential=REDACTED/20220113/us-west-2/resource-groups/aws4_request, 
        SignedHeaders=content-encoding;content-length;content-type;host;x-amz-date;x-amz-target, 
        Signature=EXAMPLE5cb91f88f1EXAMPLEa02d3af93dEXAMPLE91e5d03588EXAMPLE88ff1d
Content-Type: application/json
Accept: application/json
Content-Length: 283

{
    "Description": "Resources created for the testing stage.", 
    "Name": "QueryGroup", 
    "ResourceQuery": {
        "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}",
         "Type": "TAG_FILTERS_1_0"
    }, 
    "Tags": {"Department": "Finance"}
}
```