Esempi di come Gateway API valuta le regole di routing - Amazon API Gateway

Esempi di come Gateway API valuta le regole di routing

La sezione seguente illustra quattro esempi di come Gateway API valuta le regole di routing e le mappature API.

Esempio 1: solo regole di routing

In questo esempio, il nome di dominio personalizzato https://petstore.example.com ha la modalità di routing impostata su ROUTING_RULE_ONLY con le regole di routing e le priorità riportate di seguito.

ID della regola Priorità Condizioni Azione

abc123

10

Se la richiesta contiene l’intestazione Hello:World

API di destinazione 1

zzz000

50

Se la richiesta contiene le intestazioni Accept:image/webp e Pet:Dog-* e se il percorso di base contiene PetStoreShopper

API di destinazione 2

efg456

100

Nessuno

API di destinazione 3

La tabella seguente mostra come Gateway API applica le regole di routing precedenti alle richieste di esempio.

Richiesta API selezionata Spiegazione

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

API di destinazione 1

La richiesta soddisfa la regola di routing abc123.

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

API di destinazione 1

Gateway API valuta tutte le regole di routing in ordine di priorità. La regola di routing abc123 ha la priorità assoluta e le condizioni sono soddisfatte, quindi Gateway API invoca API di destinazione 1.

Sebbene le condizioni della richiesta corrispondano anche alla regola di routing zzz000, Gateway API non valuta nessun’altra regola di routing dopo aver effettuato una corrispondenza.

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

API di destinazione 2

La richiesta soddisfa la regola di routing zzz000. Questa è una corrispondenza perché la stringa Pet:Dog-Bella corrisponde a Pet:Dog-*

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

API di destinazione 3

La richiesta non soddisfa la regola di routing abc123. La richiesta non soddisfa la regola di routing zzz000 perché non sono presenti tutte le intestazioni necessarie. La regola di priorità successiva corrisponde a tutte le richieste in entrata, quindi Gateway API invoca API di destinazione 3.

Esempio 2: regole di routing e mappature API

In questo esempio, il nome di dominio personalizzato https://petstore.diagram.example.com ha la modalità di routing impostata su ROUTING_RULE_THEN_API_MAPPING e le seguenti regole di routing e mappature API.

ID della regola Priorità Condizioni Azione

abc123

1

Se la richiesta contiene pets

Invoca la fase Prod dell’API PetStore.

000zzz

5

Se la richiesta contiene l’intestazione Cookie:*ux=beta* e se il percorso di base contiene /refunds

Invoca la fase Beta dell’API Refunds.

La tabella riportata di seguito mostra le mappature API per https://petstore.backup.example.com.

Mappatura API API selezionata

/refunds

Invoca la fase Prod dell’API Refunds.

(none)

Invoca la fase Prod dell’API Search.

Il diagramma seguente mostra come Gateway API applica le regole di routing e le mappature API precedenti alle richieste di esempio. Le richieste di esempio sono riepilogate nella tabella che segue il diagramma.

Diagramma di come Gateway API applica le regole di routing e le mappature API precedenti.

La tabella seguente mostra come Gateway API applica le regole di routing e le mappature API precedenti alle richieste di esempio.

Richiesta API selezionata Spiegazione

https://petstore.diagram.com/pets

La fase Prod dell’API PetStore.

La richiesta soddisfa la regola di routing abc123.

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

La fase Beta dell’API Refunds.

La richiesta soddisfa la regola di routing 000zzz. L’intestazione Cookie contiene la corrispondenza *contains* e la corrispondenza del percorso di base corrette per questa condizione.

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

La fase Prod dell’API Refunds.

La richiesta non ha le intestazioni necessarie per soddisfare la regola di routing zzz000. Se Gateway API non riesce a soddisfare correttamente una regola di routing, utilizza le mappature API. Gateway API può mappare il percorso di base alla fase Prod dell’API Refunds.

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

La fase Prod dell’API Search.

La richiesta esegue la corrispondenza della mappatura API al percorso vuoto (none).

Esempio 3: regole di routing e mappature API con più livelli

In questo esempio, il nome di dominio personalizzato https://petstore.backup.example.com ha la modalità di routing impostata su ROUTING_RULE_THEN_API_MAPPING e le seguenti regole di routing e mappature API.

La tabella seguente mostra le regole di routing per https://petstore.backup.example.com.

ID della regola Priorità Condizioni Azione

abc123

10

Se la richiesta contiene l’intestazione Hello:World

API di destinazione 1

000zzz

50

Se la richiesta contiene le intestazioni Accept:image/webp e Pet:Dog-* e se il percorso di base contiene PetStoreShopper

API di destinazione 2

La tabella riportata di seguito mostra le mappature API per https://petstore.backup.example.com.

Mappatura API API selezionata

PetStoreShopper

API di destinazione 3

PetStoreShopper/cats

API di destinazione 4

La tabella seguente mostra come Gateway API applica le regole di routing e le mappature API precedenti alle richieste di esempio.

Richiesta API selezionata Spiegazione

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

API di destinazione 3

La richiesta non ha le intestazioni necessarie per soddisfare la regola di routing zzz000. Se Gateway API non riesce a soddisfare correttamente una regola di routing, utilizza le mappature API. Gateway API può mappare il percorso di base all’API di destinazione 3.

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

API di destinazione 1

La richiesta soddisfa la regola di routing abc123. Se la modalità di routing è impostata su ROUTING_RULE_THEN_API_MAPPING, le regole di routing hanno sempre la priorità sulle mappature API.

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

Nessuno

La richiesta non soddisfa nessuna regola di routing o mappatura API. Poiché non esiste una regola di routing predefinita, Gateway API rifiuta la chiamata e invia al chiamante un codice di stato 403 Forbidden.

Esempio 4: regole di routing per i nomi di dominio con caratteri jolly

In questo esempio, il nome di dominio personalizzato https://*.example.com è un nome di dominio con caratteri jolly. Il carattere jolly supporta tutti i sottodomini che vengono instradati nuovamente allo stesso dominio. Le regole di routing di esempio seguenti modificano questo comportamento per consentire l’instradamento dei sottodomini a diverse API di destinazione utilizzando l’intestazione Host.

La tabella seguente mostra le regole di routing per https://*.example.com.

ID della regola Priorità Condizioni Azione

abc123

10

Se la richiesta contiene l’intestazione Host:a.example.com

API di destinazione 1

000zzz

50

Se la richiesta contiene l’intestazione Host:b.example.com

API di destinazione 2

efg456

500

Nessuno

API di destinazione 3

La tabella seguente mostra come Gateway API applica le regole di routing precedenti alle richieste di esempio.

Richiesta API selezionata Spiegazione

https://a.example.com

API di destinazione 1

L’intestazione Host è a.example.com. Questa richiesta soddisfa la regola di routing abc123.

https://b.example.com

API di destinazione 2

L’intestazione Host è b.example.com. Questa richiesta soddisfa la regola di routing 000zzz.

https://testing.example.com

API di destinazione 3

Questa richiesta soddisfa la regola di routing catch-all efg456.