

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Payload-Komprimierung für REST APIs in API Gateway
<a name="api-gateway-gzip-compression-decompression"></a>

 API Gateway ermöglicht es Ihrem Client, über eine der [unterstützten Inhaltskodierungen](api-gateway-enable-compression.md#api-gateway-supported-content-encodings) Ihre API mit komprimierten Payloads aufzurufen. API Gateway unterstützt standardmäßig die Dekomprimierung der Methodenanforderungsnutzlast. Sie müssen Ihre API allerdings so konfigurieren, dass die Komprimierung der Methodenantwortnutzlast aktiviert wird. 

 Zum Aktivieren der Komprimierung für eine [https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html) legen Sie für die Eigenschaft [https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html#minimumCompressionSize](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html#minimumCompressionSize) beim oder nach dem Erstellen der API eine nicht negative Ganzzahl zwischen 0 und 10485760 (10 M Bytes) fest. Zum Deaktivieren der Komprimierung in der API legen Sie `minimumCompressionSize` auf Null fest oder entfernen Sie die Eigenschaft. Sie können die Komprimierung für eine API aktivieren oder deaktivieren, indem Sie die API Gateway Gateway-Konsole AWS CLI, die oder die API Gateway Gateway-REST-API verwenden. 

Wenn Sie die Komprimierung auf eine Nutzlast jeder beliebigen Größe angewendet werden soll, legen Sie den Wert `minimumCompressionSize` auf Null fest. Durch die Komprimierung einer kleinen Datengröße kann sich jedoch die endgültige Datengröße erhöhen. Darüber hinaus kann die Komprimierung in API Gateway und die Dekomprimierung im Client die Gesamtlatenzzeit erhöhen und mehr Rechenzeit erfordern. Führen Sie Testläufe für Ihre API aus, um den optimalen Wert zu bestimmen.

Der Client kann eine API-Anfrage mit einer komprimierten Nutzlast und einem geeigneten `Content-Encoding`-Header für API Gateway senden, um geeignete Zuweisungsvorlagen zu komprimieren und anzuwenden, bevor die Anfrage dem Integrationsendpunkt übergeben wird. Nachdem die Komprimierung aktiviert und die API bereitgestellt wurde, kann der Client eine API-Antwort mit einer komprimierten Nutzlast empfangen, wenn ein geeigneter `Accept-Encoding`-Header in der Methodenanforderung angegeben ist. 

Wenn der Integrationsendpunkt nicht komprimierte JSON-Nutzlasten erwartet und zurückgibt, ist jede Zuweisungsvorlage, die für eine nicht komprimierte JSON-Nutzlast konfiguriert ist, für die komprimierte Nutzlast anwendbar. Für eine komprimierte Methodenanforderungsnutzlast dekomprimiert API Gateway die Nutzlast, wendet die Zuweisungsvorlage an und übergibt dem Integrationsendpunkt die zugewiesene Anfrage. Für eine nicht komprimierte Methodenanforderungsnutzlast wendet API Gateway die Zuweisungsvorlage an, komprimiert die zugewiesene Nutzlast und gibt die komprimierte Nutzlast an den Client zurück. 

**Topics**
+ [Nutzlastkomprimierung für eine API in API Gateway aktivieren](api-gateway-enable-compression.md)
+ [Aufrufen einer API-Methode mit einer komprimierten Nutzlast in API Gateway](api-gateway-make-request-with-compressed-payload.md)
+ [Empfangen einer API-Antwort mit einer komprimierten Nutzlast in API Gateway](api-gateway-receive-response-with-compressed-payload.md)

# Nutzlastkomprimierung für eine API in API Gateway aktivieren
<a name="api-gateway-enable-compression"></a>

Sie können die Komprimierung für eine API mithilfe der API Gateway Gateway-Konsole AWS CLI, des oder eines AWS SDK aktivieren.

Im Fall einer vorhandenen API müssen Sie nach der Aktivierung der Komprimierung die API bereitstellen, damit die Änderungen wirksam werden. Im Fall einer neuen API können Sie die API nach Abschluss der API-Einrichtung bereitstellen.

**Anmerkung**  
Die Inhaltskodierung mit der höchsten Priorität muss von API Gateway unterstützt werden. Wenn dies nicht der Fall ist, wird keine Komprimierung auf die Antwortnutzlast angewendet.

**Topics**
+ [Payload-Komprimierung für eine API über die API Gateway-Konsole aktivieren](#api-gateway-enable-compression-console)
+ [Aktivieren Sie die Payload-Komprimierung für eine API mithilfe von AWS CLI](#api-gateway-enable-compression-cli)
+ [Von API Gateway unterstützte Inhaltskodierungen](#api-gateway-supported-content-encodings)

## Payload-Komprimierung für eine API über die API Gateway-Konsole aktivieren
<a name="api-gateway-enable-compression-console"></a>

Im folgenden Verfahren wird beschrieben, wie Sie die Nutzlastkomprimierung für eine API aktivieren. 

**So aktivieren Sie die Payload-Komprimierung über die API Gateway-Konsole:**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie eine vorhandene API oder erstellen Sie eine neue.

1. Wählen Sie im Hauptnavigationsbereich **API-Einstellungen**. 

1. Wählen Sie im Abschnitt **API-Details** die Option **Bearbeiten** aus.

1. Aktivieren Sie die **Inhaltskodierung**, um die Nutzlast-Komprimierung zu aktivieren. Geben Sie einen Wert für die Mindestkomprimierungsgröße (in Byte) unter **Mindesttextgröße** ein. Um die Komprimierung zu deaktivieren, schalten Sie die Option **Inhaltskodierung** aus.

1. Wählen Sie **Änderungen speichern ** aus.

## Aktivieren Sie die Payload-Komprimierung für eine API mithilfe von AWS CLI
<a name="api-gateway-enable-compression-cli"></a>



Der folgende [create-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-rest-api.html)Befehl erstellt eine API mit Payload-Komprimierung:

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

Der folgende [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html)Befehl aktiviert die Payload-Komprimierung für eine bestehende API:

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

Die Eigenschaft `minimumCompressionSize` weist eine nicht negative ganze Zahl zwischen 0 und 10485760 (10 M Bytes) auf. Mit ihr wird die Komprimierung gemessen. Wenn die Nutzlastgröße kleiner als dieser Wert ist, wird die Komprimierung oder Dekomprimierung nicht auf die Nutzlast angewendet. Wenn er auf Null festgelegt ist, ist die Komprimierung für jede beliebige Nutzlastgröße erlaubt.

Der folgende [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html)Befehl deaktiviert die Payload-Komprimierung:

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

Sie können `value` auch auf eine leere Zeichenfolge `""` festlegen oder die Eigenschaft `value` im vorhergehenden Aufruf vollständig weglassen.

## Von API Gateway unterstützte Inhaltskodierungen
<a name="api-gateway-supported-content-encodings"></a>

API Gateway unterstützt die folgenden Inhaltskodierungen:
+ `deflate`
+ `gzip`
+ `identity`

API Gateway unterstützt auch das folgende `Accept-Encoding` Header-Format gemäß der Spezifikation [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.4):
+ `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`

# Aufrufen einer API-Methode mit einer komprimierten Nutzlast in API Gateway
<a name="api-gateway-make-request-with-compressed-payload"></a>

Um eine API-Anfrage mit einer komprimierten Nutzlast zu erstellen, muss der Client den `Content-Encoding`-Header mit einer der [unterstützten Inhaltscodierungen](api-gateway-enable-compression.md#api-gateway-supported-content-encodings) festlegen. 

Angenommen, Sie sind ein API-Client und möchten die PetStore API-Methode (`POST /pets`) aufrufen. Rufen Sie die Methode nicht mit der folgenden JSON-Ausgabe auf:

```
POST /pets
Host: {petstore-api-id}.execute-api.{region}.amazonaws.com
Content-Length: ...

{
  "type": "dog",
  "price": 249.99
}
```

Stattdessen können Sie die Methode mit der gleichen Nutzlast aufrufen, die mit der GZIP-Codierung komprimiert wird:

```
POST /pets
Host: {petstore-api-id}.execute-api.{region}.amazonaws.com
Content-Encoding:gzip
Content-Length: ...

���RPP*�,HU�RPJ�OW��e&���L,�,-y�j
```

Wenn API Gateway die Anfrage erhält, prüft es, ob die angegebene Inhaltskodierung unterstützt wird. Anschließend wird versucht, die Nutzlast mit der angegebenen Inhaltscodierung zu dekomprimieren. Wenn die Dekomprimierung erfolgreich ist, wird die Anforderung an den Integrationsendpunkt gesendet. Wenn die angegebene Kodierung nicht unterstützt wird oder der gelieferte Payload nicht mit der angegebenen Kodierung komprimiert ist, gibt API Gateway die `415 Unsupported Media Type`-Fehlerantwort zurück. Der Fehler wird nicht in CloudWatch Logs protokolliert, wenn er in der frühen Phase der Dekomprimierung auftritt, bevor Ihre API und Ihre Phase identifiziert wurden. 

# Empfangen einer API-Antwort mit einer komprimierten Nutzlast in API Gateway
<a name="api-gateway-receive-response-with-compressed-payload"></a>

Beim Erstellen einer Anforderung in einer komprimierungsfähigen API kann der Client festlegen, dass er eine komprimierte Antwortnutzlast eines bestimmten Formats erhält, indem er einen `Accept-Encoding`-Header mit einer [unterstützten Inhaltscodierung](api-gateway-enable-compression.md#api-gateway-supported-content-encodings) angibt. 

API Gateway komprimiert den Antwortpayload nur, wenn die folgenden Bedingungen erfüllt sind:
+  Der `Accept-Encoding`-Header der eingehenden Anforderung weist eine unterstützte Inhaltscodierung und ein entsprechendes Format auf. 
**Anmerkung**  
Wenn der Header nicht festgelegt ist, ist der Standardwert `*` gemäß [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.4). In einem solchen Fall komprimiert API Gateway den Payload nicht. Einige Browser oder Clients fügen komprimierungsfähigen Anforderungen möglicherweise automatisch `Accept-Encoding` (z. B. `Accept-Encoding:gzip, deflate, br`) hinzu. Dies kann die Komprimierung der Nutzlast in API Gateway aktivieren. Ohne explizite Angabe der unterstützten `Accept-Encoding`-Header-Werte komprimiert API Gateway den Payload nicht. 
+  Die `minimumCompressionSize` wird in der API festgelegt, um die Komprimierung zu aktivieren.
+  Die Integrationsantwort enthält keinen `Content-Encoding`-Header. 
+  Die Größe einer Integrationsantwortnutzlast nach Anwendung der geltenden Zuweisungsvorlage ist größer als oder gleich dem angegebenen `minimumCompressionSize`-Wert.

API Gateway wendet ggf. eine Zuweisungsvorlagen an, die für die Integrationsantwort konfiguriert ist, bevor die Nutzlast komprimiert wird. Wenn die Integrationsantwort einen `Content-Encoding`-Header enthält, geht API Gateway davon aus, dass die Integrationsantwortnutzlast bereits komprimiert ist und überspringt die Komprimierungsverarbeitung.

Ein Beispiel ist das PetStore API-Beispiel und die folgende Anfrage:

```
GET /pets
Host: {petstore-api-id}.execute-api.{region}.amazonaws.com
Accept: application/json
```

Das Backend beantwortet die Anforderung mit einer nicht komprimierten JSON-Nutzlast ähnlich wie der folgenden:

```
200 OK

[
  { 
    "id": 1, 
    "type": "dog", 
    "price": 249.99 
  }, 
  { 
    "id": 2, 
    "type": "cat", 
    "price": 124.99 
  }, 
  { 
    "id": 3, 
    "type": "fish", 
    "price": 0.99 
  } 
]
```

Zum Empfangen dieser Ausgabe als komprimierte Nutzlast kann Ihr API-Client eine Anforderung wie folgt senden:

```
GET /pets
Host: {petstore-api-id}.execute-api.{region}.amazonaws.com
Accept-Encoding:gzip
```

Der Client erhält die Antwort mit einem `Content-Encoding`-Header und einer GZIP-kodierten Nutzlast ähnlich wie den folgenden: 

```
200 OK
Content-Encoding:gzip
...

���RP�

J�)JV
�:P^IeA*������+(�L	�X�YZ�ku0L0B7!9��C#�&����Y��a���^�X
```

Wird die Antwortnutzlast komprimiert, wird nur die komprimierte Datengröße für die Datenübertragung in Rechnung gestellt.