

# API Gateway で API のペイロード圧縮を有効にする
<a name="api-gateway-enable-compression"></a>

API Gateway コンソール、AWS CLI、または AWS SDK を使用して、API の圧縮を有効にできます。

既存の API では、圧縮を有効にした後、API をデプロイして変更を有効にする必要があります。新しい API の場合、API のセットアップ完了後に API をデプロイします。

**注記**  
最も優先順位の高いコンテンツのエンコードは、API Gateway によってサポートされている必要があります。サポートされていない場合は、レスポンスペイロードに圧縮が適用されません。

**Topics**
+ [API Gateway コンソールを使用して API のペイロードの圧縮を有効にする](#api-gateway-enable-compression-console)
+ [AWS CLI を使用して API のペイロードの圧縮を有効にする](#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. [**Save changes**] (変更の保存) をクリックします。

## AWS CLI を使用して API のペイロードの圧縮を有効にする
<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 (10M バイト) の間の負でない整数値があります。これは圧縮のしきい値を測定します。ペイロードサイズがこの値よりも小さい場合、圧縮または解凍はペイロードに適用されません。ゼロに設定すると、任意のペイロードサイズの圧縮を許可します。

次の [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`

API Gateway は [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.4) 仕様に従って、次の `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`