Exemples de la façon dont API Gateway évalue les règles de routage - Amazon API Gateway

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemples de la façon dont API Gateway évalue les règles de routage

La section suivante présente quatre exemples illustrant la façon dont API Gateway évalue les règles de routage et les mappages d'API.

Exemple 1 : règles de routage uniquement

Dans cet exemple, le nom de domaine personnalisé https://petstore.example.com a le mode de routage défini sur ROUTING_RULE_ONLY et possède les règles et priorités de routage suivantes.

ID de la règle Priorité Conditions Action

abc123

10

Si la demande contient un en-tête : Hello:World

API cible 1

zzz000

50

Si la demande contient des en-têtes : Accept:image/webp Pet:Dog-* et si le chemin de base contient PetStoreShopper

API cible 2

efg456

100

Aucun

API cible 3

Le tableau suivant montre comment API Gateway applique les règles de routage précédentes à des exemples de demandes.

Requête API sélectionnée Explication

https://petstore.example.com -h "Hello:World"

API cible 1

La demande correspond à la règle de routageabc123.

https://petstore.example.com/PetStoreShopper -h "Hello:World", "Pet:Dog-Bella", "Accept:image/webp"

API cible 1

API Gateway évalue toutes les règles de routage par ordre de priorité. La règle de routage abc123 a la première priorité et les conditions correspondent. API Gateway appelle donc l'API Target 1.

Bien que les conditions de la demande correspondent également à la règle de routagezzz000, API Gateway n'évalue aucune autre règle de routage une fois la correspondance établie.

https://petstore.example.com/PetStoreShopper -h "Pet:Dog-Bella", "Accept:image/webp"

API cible 2

La demande correspond à la règle de routagezzz000. Il s'agissait d'une correspondance car il s'Pet:Dog-Bellaagissait d'une correspondance de chaîne avec Pet:Dog-*

https://petstore.example.com/PetStoreShopper -h "Pet:Dog-Bella"

API cible 3

La demande ne correspond pas à la règle de routageabc123. La demande ne correspond pas à la règle de routage zzz000 car tous les en-têtes requis ne sont pas présents. La règle de priorité suivante correspond à toutes les demandes entrantes. API Gateway invoque donc l'API Target 3.

Exemple 2 : règles de routage et mappages d'API

Dans cet exemple, le nom de domaine personnalisé https://petstore.diagram.example.com a le mode de routage défini sur ROUTING_RULE_THEN_API_MAPPING et possède les règles de routage et les mappages d'API suivants.

ID de la règle Priorité Conditions Action

abc123

1

Sur demande, la base contient pets

Appelez le Prod stage de l'PetStoreAPI.

000zzz

5

Si la requête contient des en-têtes : Cookie : *ux=beta* et si le chemin de base contient /refunds

Appelez le Beta stage de l'RefundsAPI.

Le tableau suivant présente les mappages d'API pourhttps://petstore.backup.example.com.

Cartographie des API API sélectionnée

/refunds

Appelez le Prod stage de l'RefundsAPI.

(none)

Appelez le Prod stage de l'SearchAPI.

Le schéma suivant montre comment API Gateway applique les règles de routage et les mappages d'API précédents à des exemples de demandes. Les exemples de demandes sont résumés dans le tableau qui suit ce diagramme.

Schéma de la façon dont API Gateway applique les règles de routage et les mappages d'API précédents.

Le tableau suivant montre comment API Gateway applique les règles de routage et les mappages d'API précédents aux exemples de demandes.

Requête API sélectionnée Explication

https://petstore.diagram.com/pets

L'Prodétape de l'PetStoreAPI.

La demande correspond à la règle de routageabc123.

https://petstore.diagram.example.com/refunds -h "Cookie:lang=en-us;ux=beta"

L'Betaétape de l'RefundsAPI.

La demande correspond à la règle de routage000zzz. L'Cookieen-tête contient la *contains* correspondance correcte et la correspondance du chemin de base pour cette condition.

https://petstore.diagram.example.com/refunds

L'Prodétape de l'RefundsAPI.

La demande ne possède pas les en-têtes requis pour correspondre à la règle zzz000 de routage. Si API Gateway ne parvient pas à faire correspondre une règle de routage, il revient aux mappages d'API. API Gateway peut mapper le chemin de base à l'Prodétape de l'RefundsAPI.

https://petstore.diagram.example.com/

L'Prodétape de l'SearchAPI.

La demande fait correspondre le mappage de l'API au chemin vide(none).

Exemple 3 : règles de routage et mappages d'API à plusieurs niveaux

Dans cet exemple, le nom de domaine personnalisé https://petstore.backup.example.com a le mode de routage défini sur ROUTING_RULE_THEN_API_MAPPING et possède les règles de routage et les mappages d'API suivants.

Le tableau suivant présente les règles de routage pourhttps://petstore.backup.example.com.

ID de la règle Priorité Conditions Action

abc123

10

Si la demande contient un en-tête : Hello:World

API cible 1

000zzz

50

Si la requête contient des en-têtes : Accept : image/webp Pet:Dog-* et si le chemin de base contient PetStoreShopper

API cible 2

Le tableau suivant présente les mappages d'API pourhttps://petstore.backup.example.com.

Cartographie des API API sélectionnée

PetStoreShopper

API cible 3

PetStoreShopper/cats

API cible 4

Le tableau suivant montre comment API Gateway applique les règles de routage et les mappages d'API précédents aux exemples de demandes.

Requête API sélectionnée Explication

https://petstore.example.com/PetStoreShopper -h "Accept:image/webp", "Pet:Cats"

API cible 3

La demande ne possède pas les en-têtes requis pour correspondre à la règle zzz000 de routage. Si API Gateway ne parvient pas à faire correspondre une règle de routage, il revient aux mappages d'API. API Gateway peut mapper le chemin de base vers l'API Target 3.

https://petstore.example.com/PetStoreShopper/cats -h "Hello:World"

API cible 1

La demande correspond à la règle de routageabc123. Si le mode de routage est défini surROUTING_RULE_THEN_API_MAPPING, les règles de routage ont toujours la priorité sur les mappages d'API.

https://petstore.example.com/Admin -h "Pet:Dog-Bella"

Aucun

La demande ne correspond à aucune règle de routage ni à aucun mappage d'API. Comme il n'existe aucune règle de routage par défaut, API Gateway rejette l'appel et envoie un code d'403 Forbiddenétat à l'appelant.

Exemple 4 : règles de routage pour les noms de domaine génériques

Dans cet exemple, le nom de domaine personnalisé https://*.example.com est un nom de domaine générique. Le caractère générique prend en charge tous les sous-domaines renvoyant vers le même domaine. Les exemples de règles de routage suivants modifient ce comportement pour permettre aux sous-domaines d'être acheminés vers une cible différente à l'aide APIs de l'Hosten-tête.

Le tableau suivant présente les règles de routage pourhttps://*.example.com.

ID de la règle Priorité Conditions Action

abc123

10

Si la demande contient un en-tête : Host:a.example.com

API cible 1

000zzz

50

Si la demande contient des en-têtes : Host:b.example.com

API cible 2

efg456

500

Aucun

API cible 3

Le tableau suivant montre comment API Gateway applique les règles de routage précédentes à des exemples de demandes.

Requête API sélectionnée Explication

https://a.example.com

API cible 1

L'Hosten-tête esta.example.com. Cette demande correspond à la règle de routageabc123.

https://b.example.com

API cible 2

L'Hosten-tête estb.example.com. Cette demande correspond à la règle de routage000zzz.

https://testing.example.com

API cible 3

Cela correspond à la règle de routage fourre-tout. efg456