

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.

# Verwenden Sie API-Zuordnungen, um API-Stufen mit einem benutzerdefinierten Domainnamen für REST zu verbinden APIs
<a name="rest-api-mappings"></a>

Sie verwenden API-Mappings, um API-Stufen mit einem benutzerdefinierten Domain-Namen zu verbinden. Dadurch wird Traffic APIs über Ihren benutzerdefinierten Domainnamen an Sie gesendet.

Ein API-Mapping gibt eine API, eine Phase und optional einen Pfad an, die für das Mapping verwendet werden sollen. Sie können beispielsweise `https://api.example.com/orders` die `production` Stufe einer API zuordnen.

Sie können HTTP-API- und REST-API--Stufen demselben benutzerdefinierten Domain-Namen zuweisen.

Bevor Sie ein API-Mapping erstellen, benötigen Sie eine API, eine Phase und einen benutzerdefinierten Domain-Namen. Weitere Informationen zum Erstellen eines benutzerdefinierten Domain-Namens finden Sie unter [Einrichten eines regionalen benutzerdefinierten Domainnamens in API Gateway](apigateway-regional-api-custom-domain-create.md).

## Eingehende Anfragen an Ihren benutzerdefinierten Domainnamen
<a name="rest-api-mappings-incoming-requests"></a>

Wenn Sie einer Phase Ihrer API einen benutzerdefinierten Domainnamen zuordnen, entfernt API Gateway den eingehenden Basispfad. Dadurch wird der zugeordnete Basispfad aus dem API-Aufruf entfernt. Wenn Ihre Basispfad-Zuordnung beispielsweise der `test` Phase entspricht und Sie die folgende Anfrage verwenden`https://api.example.com/orders/shop/5/hats`, würde API Gateway die `/hats` Ressource der `test` Stufe Ihrer API aufrufen, nicht die `orders/shop/5/hats` Ressource. `https://api.example.com/orders/shop/5`

## API-Anfragen zuordnen
<a name="rest-api-mappings-evalutation"></a>

Im Folgenden wird erklärt, wie API Gateway API-Zuordnungen auswertet.

Sie können eine API-Zuordnung mithilfe einstufiger Zuordnungen erstellen, z. B. einer API-Zuordnung von `orders` der `beta` Stufe einer API und einer API-Zuordnung von `shipping` der Stufe einer API. `alpha` Für regionale benutzerdefinierte Domainnamen mit der Sicherheitsrichtlinie TLS 1.2 unterstützt API Gateway mehrstufige API-Zuordnungen. Sie können eine API-Zuordnung zwischen `orders/v1/items` der `alpha` Stufe einer API und `orders/v2/items` der `beta` Phase einer API erstellen. Wenn Sie ein Mapping mit mehreren Ebenen erstellen, sendet API Gateway Anfragen an das API-Mapping, das den längsten passenden Pfad hat.

Sie können eine API-Zuordnung zu dem leeren Pfad erstellen`(none)`. Wenn kein Pfad mit der Anfrage übereinstimmt, sendet API Gateway die Anfrage an den leeren Pfad`(none)`.

In diesem Beispiel `https://api.example.com` hat der benutzerdefinierte Domainname die folgenden API-Zuordnungen.


|  API-Zuordnung  |  Ausgewählte API  | 
| --- | --- | 
|  `(none)`  |   API 1   | 
|   `orders`   |   API 2   | 
|  `orders/v1/items`  |   API 3   | 
|  `orders/v2/items`  |   API 4   | 
|  `orders/v1/items/categories`  |   API 5   | 

Die folgende Tabelle zeigt, wie API Gateway die vorherigen API-Zuordnungen auf Beispielanfragen anwendet.


| Anfrage | Ausgewählte API | Erklärung | 
| --- | --- | --- | 
|  `https://api.example.com/orders`  |  API 2  |  Die Anforderung stimmt genau mit diesem API-Mapping überein.  | 
|  `https://api.example.com/orders/v1/items`  |  API 3  |  Die Anforderung stimmt genau mit diesem API-Mapping überein.  | 
|  `https://api.example.com/orders/v2/items`  |  API 4  |  Die Anforderung stimmt genau mit diesem API-Mapping überein.  | 
|  `https://api.example.com/orders/v1/items/123`  |  API 3  |  API Gateway wählt das Mapping aus, das den längsten Übereinstimmungspfad hat. Das `123` am Ende der Anforderung hat keinen Einfluss auf die Auswahl. Siehe [Eingehende Anfragen an Ihren benutzerdefinierten Domainnamen](#rest-api-mappings-incoming-requests).  | 
|  `https://api.example.com/orders/v2/items/categories/5`  |  API 5  |  API Gateway wählt das Mapping aus, das den längsten Übereinstimmungspfad hat.  | 
|  `https://api.example.com/customers`  |  API 1  |  API Gateway verwendet das leere Mapping als Catch-All.  | 
|  `https://api.example.com/ordersandmore`  |  API 2  |  API Gateway wählt das Mapping aus, das den längsten Übereinstimmungspräfix hat. Bei einem benutzerdefinierten Domain-Namen, der mit einstufigen Mappings konfiguriert ist, z. B. nur `https://api.example.com/orders` und `https://api.example.com/`, würde API Gateway `API 1` auswählen, da es keinen passenden Pfad mit `ordersandmore` gibt.  | 

## Einschränkungen
<a name="rest-api-mappings-restrictions"></a>
+ Bei einer API-Zuordnung APIs müssen sich der benutzerdefinierte Domainname und der zugeordnete Domainname im selben AWS Konto befinden.
+ API-Mappings dürfen nur Buchstaben, Zahlen und die folgenden Zeichen enthalten: `$-_.+!*'()/`.
+ Die maximale Länge für den Pfad in eines API-Mappings beträgt 300 Zeichen.
+ Es können 200 API-Zuweisungen mit mehreren Ebenen für jeden Domainnamen vorhanden sein. Dieses Limit beinhaltet keine API-Zuordnung mit einzelnen Ebenen, wie `/prod` z.
+ Mit der Sicherheitsrichtlinie TLS 1.2 können Sie HTTP APIs nur einem regionalen benutzerdefinierten Domainnamen zuordnen.
+ Sie können nicht demselben benutzerdefinierten Domainnamen wie eine HTTP-API oder REST-API zuordnen. WebSocket APIs 
+ Sie müssen den Ressourceneintrag Ihres DNS-Anbieters erstellen oder aktualisieren, um ihn dem API-Endpunkt zuzuordnen, nachdem Sie Ihre API-Zuweisungen erstellt haben.
+ Wenn Sie mehrstufige API-Zuweisungen erstellen, konvertiert API Gateway alle Header-Namen in Kleinbuchstaben.

## Ein API-Mapping erstellen
<a name="rest-api-mappings-examples"></a>

Um ein API-Mapping zu erstellen, müssen Sie zuerst einen benutzerdefinierten Domain-Namen, eine API und eine Phase erstellen. Für Ihren benutzerdefinierten Domainnamen muss der Routing-Modus entweder auf `ROUTING_RULE_THEN_API_MAPPING` oder eingestellt sein`API_MAPPING_ONLY`. Informationen zum Einstellen des Routingmodus finden Sie unter[Festlegen des Routing-Modus für Ihren benutzerdefinierten Domainnamen](set-routing-mode.md).

 AWS Serverless Application Model Vorlagen, mit denen alle Ressourcen erstellt werden, finden Sie beispielsweise unter [Sitzungen mit aktiviertem SAM](https://github.com/aws-samples/sessions-with-aws-sam/tree/master/custom-domains) GitHub.

------
#### [ AWS-Managementkonsole ]

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 **Benutzerdefinierten Domänennamen** im Hauptnavigationsbereich aus. 

1. Wählen Sie einen benutzerdefinierten Domänennamen aus.

1. Wählen Sie auf der Registerkarte **Routing-Details** die Option API-Zuordnungen **konfigurieren** aus.

1. Geben Sie die **API**, die **Stufe** und den **Pfad** für die Zuweisung an.

1. Wählen Sie **Speichern**.

------
#### [ AWS CLI ]

Mit dem folgenden [create-api-mapping](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/create-api-mapping.html)-Befehl wird ein API-Mapping erstellt. In diesem Beispiel sendet API Gateway Anforderungen an `api.example.com/v1/orders` an die angegebene API und Phase.

**Anmerkung**  
Um API-Mappings mit mehreren Ebenen zu erstellen, müssen Sie `apigatewayv2` verwenden.

```
aws apigatewayv2 create-api-mapping \
    --domain-name api.example.com \
    --api-mapping-key v1/orders \
    --api-id a1b2c3d4 \
    --stage test
```

------
#### [ CloudFormation ]

Im folgenden CloudFormation Beispiel wird eine API-Zuordnung erstellt.

**Anmerkung**  
Um API-Mappings mit mehreren Ebenen zu erstellen, müssen Sie `AWS::ApiGatewayV2` verwenden.

```
MyApiMapping:
  Type: 'AWS::ApiGatewayV2::ApiMapping'
  Properties:
    DomainName: api.example.com
    ApiMappingKey: 'orders/v2/items'
    ApiId: !Ref MyApi
    Stage: !Ref MyStage
```

------