Crea percorsi per le API HTTP in API Gateway - Amazon API Gateway

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea percorsi per le API HTTP in API Gateway

Esegui il routing delle richieste API in entrata dirette alle risorse di back-end. Le route sono costituite da due parti: un metodo HTTP e un percorso delle risorse, ad esempi, GET /pets. È possibile definire metodi HTTP specifici per il percorso. In alternativa, è possibile utilizzare il metodo ANY per abbinare tutti i metodi non definiti per una risorsa. È possibile creare una route $default che funga da catch-all per le richieste che non corrispondono ad altre route.

Nota

Gateway Amazon API decodifica i parametri di richiesta con codifica URL prima di passarli all'integrazione back-end.

Lavorare con le variabili di percorso

Nelle route delle API HTTP è possibile utilizzare delle variabili di percorso.

Ad esempio, il percorso GET /pets/{petID} cattura una richiesta GET inviata da un client https://api-id.execute-api.us-east-2.amazonaws.com/pets/6.

Una variabile di percorso greedy cattura tutte le risorse figlio di un percorso. Per creare una variabile di percorso greedy, aggiungere + al nome della variale, ad esempio {proxy+}. La variabile di percorso greedy deve trovarsi alla fine del percorso della risorsa.

Utilizzo dei parametri della stringa di query

Per impostazione predefinita, API Gateway invia i parametri della stringa di query all'integrazione back-end se sono inclusi in una richiesta a un oggetto API HTTP.

Ad esempio, quando un client invia una richiesta a https://api-id.execute-api.us-east-2.amazonaws.com/pets?id=4&type=dog, i parametri della stringa di query ?id=4&type=dog vengono inviati all'integrazione.

Lavorare con il percorso $default

Il percorso $default cattura le richieste che non corrispondono esplicitamente ad altri percorsi nell'API.

Quando la route $default riceve una richiesta, API Gateway invia il percorso completo della richiesta all'integrazione. Ad esempio, è possibile creare un'API con solo un percorso $default e integrarlo nel metodo ANY con l'endpoint https://petstore-demo-endpoint.execute-api.com HTTP. Quando si invia una richiesta a https://api-id.execute-api.us-east-2.amazonaws.com/store/checkout, API Gateway invia una richiesta a https://petstore-demo-endpoint.execute-api.com/store/checkout.

Per ulteriori informazioni sulle integrazioni HTTP, consultare Crea integrazioni proxy HTTP per API HTTP.

Routing delle richieste API

Quando un client invia una richiesta API, API Gateway stabilisce innanzitutto a quale fase instradare la richiesta. Se la richiesta corrisponde esplicitamente a una fase, API Gateway invia la richiesta a tale fase. Se nessuna fase corrisponde completamente alla richiesta, API Gateway invia la richiesta alla fase $default. Se non è presente alcuna $default fase, l'API restituisce {"message":"Not Found"} e non genera CloudWatch log.

Dopo aver selezionato una fase, API Gateway seleziona una route. API Gateway seleziona la route con la corrispondenza più specifica, utilizzando le seguenti priorità:

  1. Corrispondenza completa per un percorso e un metodo.

  2. Corrispondenza per un percorso e un metodo con una variabile di percorso greedy ({proxy+}).

  3. Instradamento $default.

Se nessuna route corrisponde a una richiesta, API Gateway restituisce al client il valore {"message":"Not Found"}.

Ad esempio, si consideri un'API con una fase $default e le seguenti route di esempio:

  1. GET /pets/dog/1

  2. GET /pets/dog/{id}

  3. GET /pets/{proxy+}

  4. ANY /{proxy+}

  5. $default

    Nella tabella seguente viene riepilogato il modo in cui API Gateway instrada le richieste alle route di esempio.

Richiesta Percorso selezionato Spiegazione

GET https://api-id.execute-api.region.amazonaws.com/pets/dog/1

GET /pets/dog/1

La richiesta corrisponde completamente a questo instradamento statico.

GET https://api-id.execute-api.region.amazonaws.com/pets/dog/2

GET /pets/dog/{id}

La richiesta corrisponde completamente a questo percorso.

GET https://api-id.execute-api.region.amazonaws.com/pets/cat/1

GET /pets/{proxy+}

La richiesta non corrisponde completamente a un percorso. Il percorso con un metodo GET e una variabile di percorso greedy cattura questa richiesta.

POST https://api-id.execute-api.region.amazonaws.com/test/5

ANY /{proxy+}

Il metodo ANY corrisponde a tutti i metodi che non sono stati definiti per un percorso. I percorsi con variabili di percorso greedy hanno priorità più alta rispetto al percorso $default.