

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

# 在 API Gateway 中啟用 API 的承載壓縮功能
<a name="api-gateway-enable-compression"></a>

您可以使用 API Gateway 主控台 AWS CLI、 或 SDK 啟用 API 的 AWS 壓縮。

針對現有的 API，您必須在啟用壓縮後部署 API，以使變更生效。針對新的 API，您可以在 API 設定完成後部署 API。

**注意**  
優先順序最高的內容編碼必須是 API Gateway 支援的項目，否則系統不會將壓縮功能套用至回應承載。

**Topics**
+ [使用 API Gateway 主控台啟用 API 的承載壓縮功能](#api-gateway-enable-compression-console)
+ [使用 啟用 API 的承載壓縮 AWS CLI](#api-gateway-enable-compression-cli)
+ [API Gateway 支援的內容編碼](#api-gateway-supported-content-encodings)

## 使用 API Gateway 主控台啟用 API 的承載壓縮功能
<a name="api-gateway-enable-compression-console"></a>

下列程序說明如何啟用 API 的承載壓縮功能。

**使用 API Gateway 主控台來啟用承載壓縮功能**

1. 在以下網址登入 API Gateway 主控台：[https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)。

1. 選擇現有的 API 或建立新的 API。

1. 在主導覽窗格中，選擇 **API 設定**。

1. 在 **API 詳細資訊**區段中，選擇**編輯**。

1. 開啟**內容編碼**以啟用承載壓縮。針對**內文大小下限**，輸入代表壓縮大小下限的數字 (位元組)。若要關閉壓縮，請關閉**內容編碼**選項。

1. 選擇**儲存變更**。

## 使用 啟用 API 的承載壓縮 AWS CLI
<a name="api-gateway-enable-compression-cli"></a>



以下 [create-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-rest-api.html) 命令會建立具有承載壓縮的 API：

```
aws apigateway create-rest-api \
    --name "My test API" \
    --minimum-compression-size 0
```

以下 [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) 命令會啟用現有 API 的承載壓縮：

```
aws apigateway update-rest-api \
    --rest-api-id 1234567890 \
    --patch-operations op=replace,path=/minimumCompressionSize,value=0
```

`minimumCompressionSize` 屬性擁有介於 0 和 10485760 的非負數整數值 (1 千萬個位元組)。它可衡量壓縮閾值。如果承載大小小於這個值，則不會對承載進行壓縮或解壓縮。因此，請將此值設為零以允許任何承載大小使用壓縮功能。

以下 [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) 命令會關閉承載壓縮：

```
aws apigateway update-rest-api \
    --rest-api-id 1234567890 \
    --patch-operations op=replace,path=/minimumCompressionSize,value=
```

您也可以將 `value` 設定為空白字串 `""`，或在先前的呼叫中徹底省略 `value` 屬性。

## API Gateway 支援的內容編碼
<a name="api-gateway-supported-content-encodings"></a>

API Gateway 支援下列內容編碼：
+ `deflate`
+ `gzip`
+ `identity`

根據 [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.4) 規格，API Gateway 也支援下列 `Accept-Encoding` 標頭格式：
+ `Accept-Encoding:deflate,gzip`
+ `Accept-Encoding:`
+ `Accept-Encoding:*`
+ `Accept-Encoding:deflate;q=0.5,gzip;q=1.0`
+ `Accept-Encoding:gzip;q=1.0,identity;q=0.5,*;q=0`