

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

的查詢請求 AWS Resource Groups 是使用 HTTP 動詞的 HTTP 或 HTTPS 請求，例如 `GET`或 `POST`。

## 資源群組端點
<a name="cw-endpoints"></a>

*端點*是做為 Web 服務進入點的 URL。您可以在提出減少延遲的請求時，選取適當的 AWS 區域 端點。如需資源群組所使用端點的資訊，請參閱 [AWS Resource Groups](https://docs.aws.amazon.com/general/latest/gr/arg.html) 中的 *Amazon Web Services 一般參考*。

## 查詢參數
<a name="query-parameters"></a>

每個查詢請求必須包含一些常用參數，以處理 動作的身分驗證和選取。如需詳細資訊，請參閱 *AWS Resource Groups API 參考*中的[通用參數](https://docs.aws.amazon.com//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>

在 AWS 查詢 API 的每個回應中，都有一個 `ResponseMetadata`元素，其中包含一個 `RequestId`元素。此字串是 AWS 指派的唯一識別符，可提供追蹤資訊。雖然 `RequestId` 包含在每個回應中，但不會列在個別 API 文件頁面上，以提高可讀性並減少備援。

## 查詢 API 身分驗證
<a name="query-authentication"></a>

您可以透過 HTTP 或 HTTPS 傳送查詢請求。無論您使用哪種通訊協定，您都必須在每個查詢請求中包含簽章。如需建立和包含簽章的詳細資訊，請參閱《》中的[簽署 AWS API 請求](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)*Amazon Web Services 一般參考*。

## 可用程式庫
<a name="using-libraries"></a>

AWS 為偏好使用特定語言 APIs 而非命令列工具和查詢 API 建置應用程式的軟體開發人員提供程式庫、範例程式碼、教學課程和其他資源。這些程式庫提供基本函數 （不包含在 APIs中），例如請求身分驗證、請求重試和錯誤處理，以便更輕鬆地開始使用。資源群組程式庫和資源可用於下列語言和平台：
+  [適用於 Go 的 AWS SDK](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/resourcegroups) 
+  [AWS SDK for Java 2.x](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/resourcegroups/package-summary.html) 
+  [適用於 Java 的 AWS SDK 1.x](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/resourcegroups/package-summary.html) 
+  [適用於 JavaScript 的 AWS SDK](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-resource-groups/index.html) 
+  [AWS Node.js 中適用於 JavaScript 的 SDK](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-resource-groups/index.html) 
+  [適用於 .NET 的 AWS SDK](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/ResourceGroups/NResourceGroups.html) 
+  [適用於 PHP 的 AWS SDK](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-resource-groups-2017-11-27.html) 
+  [適用於 Python (Boto) 的 AWS SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/resource-groups.html) 
+  [適用於 Ruby 的 AWS SDK](https://github.com/aws/aws-sdk-ruby/tree/version-3/apis/resource-groups/2017-11-27) 
+ [適用於 Rust 的 AWS SDK](https://crates.io/crates/aws-sdk-resourcegroups)

如需所有語言的程式庫和範本程式碼的詳細資訊，請參閱[範例程式碼和程式庫](https://docs.aws.amazon.com/code-library)。

## 使用 `POST`方法提出 API 請求
<a name="CloudWatch-API-requests-using-post-method"></a>

如果您不使用其中一個 AWS SDKs，則可以使用 請求方法透過 HTTP 提出資源群組`POST`請求。`POST` 方法會要求您在請求的 標頭中指定 操作，並在請求內文中提供 JSON 格式的操作資料。


| 標頭名稱 | 標頭值 | 
| --- | --- | 
| Host |  AWS Resource Groups 端點。例如：`tagging.us-east-1.amazonaws.com` | 
| X-Amz-Date | 您必須提供 HTTP 日期標頭或 the AWS *x-amz-date* 標頭中的時間戳記。有些 HTTP 用戶端程式庫不允許您設定日期標頭。當 *x-amz-date* 標頭存在時，系統會在請求身分驗證期間忽略任何日期標頭。<br />*x-amz-date* 標頭必須以 ISO 8601 基本格式指定。例如：`20130315T092054Z` | 
| Authorization | 一組授權參數， AWS 用於確保請求的有效性和真實性。如需建構此標頭的詳細資訊，請參閱《》中的[簽章第 4 版簽署程序](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)*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"}
}
```