Aggiunta di risposte scorte come backend gateway API
Scopri come definire un percorso per un back-end di risposta alle azioni con API Gateway.
È spesso consigliabile verificare che un'API sia stata distribuita correttamente in un gateway API senza dover impostare un servizio backend effettivo. Un approccio consiste nel definire un instradamento nella specifica di distribuzione API che ha un percorso verso un backend 'fittizio'. Alla ricezione di una richiesta per tale percorso, il gateway API stesso funge da back-end e restituisce una risposta stock specificata.
Allo stesso modo, ci sono alcune situazioni in una distribuzione di produzione in cui vorrai un percorso particolare per un percorso per restituire costantemente la stessa risposta delle scorte senza inviare una richiesta a un back-end. Ad esempio, quando si desidera che una chiamata a un percorso restituisca sempre un codice di stato HTTP specifico nella risposta.
Utilizzando il servizio API Gateway, è possibile definire un percorso a un back-end di risposta stock che restituisce sempre lo stesso:
- Codice stato HTTP
- Campi di intestazione HTTP (coppie nome-valore)
- contenuto nel corpo della risposta
Tenere presenti le seguenti limitazioni durante la definizione delle risposte alle azioni e dei back-end di risposta alle azioni:
- ogni nome intestazione non deve superare 1 KB di lunghezza
- ogni valore di intestazione non deve superare 4 KB di lunghezza
- ogni risposta del corpo non deve superare i 5 KB di lunghezza (inclusa qualsiasi codifica)
- una definizione backend di risposta alle azioni non deve includere più di 50 campi di intestazione
È possibile aggiungere back-end di risposta stock a una specifica di distribuzione API effettuando le operazioni riportate di seguito.
- utilizzo di Console
- modifica di un file JSON
Utilizzo della console per aggiungere risposte scorte a una specifica di distribuzione API
Per aggiungere risposte stock a una specifica di distribuzione API utilizzando la console, procedere come segue.
-
Creare o aggiornare una distribuzione API utilizzando la console, selezionare l'opzione Da zero e immettere i dettagli nella pagina Informazioni di base.
Per ulteriori informazioni, vedere Distribuzione di un'interfaccia API in un gateway API mediante la creazione di una distribuzione API e Aggiornamento di un gateway API o di una distribuzione API.
-
Nella pagina Autenticazione specificare le opzioni di autenticazione.
Per ulteriori informazioni sulle opzioni di autenticazione, vedere Aggiunta di autenticazione e autorizzazione alle distribuzioni API.
-
Nella pagina Cicli creare un nuovo instradamento e specificare:
-
Percorso: un percorso per le chiamate API che utilizzano i metodi elencati per il servizio backend. Tenere presente che il percorso di instradamento specificato è il seguente:
- è relativo al prefisso del percorso di distribuzione (vedere Distribuzione di un'API in un gateway API mediante la creazione di una distribuzione API)
- deve essere preceduta da una barra ( / ) e può essere solo la singola barra
- può contenere più barre in avanti (a condizione che non siano adiacenti) e può terminare con una barra in avanti
- può includere caratteri alfanumerici maiuscoli e minuscoli
- può includere i caratteri speciali
$ - _ . + ! * ' ( ) , % ; : @ & =
- può includere parametri e caratteri jolly (vedere Aggiunta di parametri di percorso e caratteri jolly ai percorsi di instradamento)
- Metodi: uno o più metodi accettati dal servizio backend. Ad esempio,
GET, PUT
. -
Aggiungere un backend singolo o Aggiungere più backend: indica se instradare tutte le richieste allo stesso backend o instradare le richieste a backend diversi in base alla variabile di contesto e alle regole immesse.
Queste istruzioni presuppongono di voler utilizzare un singolo backend, quindi selezionare Aggiungi un backend singolo. In alternativa, se si desidera utilizzare backend diversi, selezionare Aggiungi più backend e seguire le istruzioni in Utilizzo della console per aggiungere la selezione backend dinamica a una specifica di distribuzione API.
- Tipo backend: il tipo di servizio backend è
Stock Response
. - Codice stato: qualsiasi codice di risposta HTTP valido. ad esempio
200
-
Corpo: specifica facoltativamente il contenuto del corpo della risposta, in un formato appropriato. Ad esempio:
- Se si specificano rispettivamente Nome intestazione e Valore intestazione di
Content-Type
etext/plain
, il corpo della risposta potrebbe essere"Hello world"
. - Se si specificano rispettivamente Nome intestazione e Valore intestazione di
Content-Type
eapplication/json
, il corpo della risposta potrebbe essere{"username": "john.doe"}
.
Si noti che il corpo della risposta non deve superare i 5 KB di lunghezza (inclusa qualsiasi codifica).
- Se si specificano rispettivamente Nome intestazione e Valore intestazione di
-
Nome intestazione e Valore intestazione: è possibile specificare il nome di un'intestazione di risposta HTTP e il relativo valore. Ad esempio, il nome
Content-Type
e il valoreapplication/json
. È possibile specificare più coppie nome intestazione-valore (fino a un massimo di 50). Si noti che in ogni caso:- il nome dell'intestazione non deve superare 1 KB di lunghezza
- il valore dell'intestazione non deve superare i 4 KB di lunghezza
In questo esempio, una richiesta al percorso
/test
restituisce un codice di stato 200 e un payload JSON nel corpo della risposta.Campo : Immettere: Percorso: /test
Metodi: GET
Tipo di backend: Stock Response
Codice di stato: 200
Corpo: {"username": "john.doe"}
Nome intestazione: Content-Type
Valore intestazione: application/json
In questo esempio, una richiesta al percorso
/test-redirect
restituisce un codice di stato 302 e un URL temporaneo nell'intestazioneLocation
della risposta.Campo : Immettere: Percorso: /test-redirect
Metodi: GET
Tipo di backend: Stock Response
Codice di stato: 302
Corpo: n/a Nome intestazione: Location
Valore intestazione: http://www.example.com
-
- (Facoltativo) Fare clic su Altro instradamento per immettere i dettagli degli instradamenti aggiuntivi.
- Fare clic su Successivo per esaminare i dettagli immessi per la distribuzione API.
- Fare clic su Crea o su Salva modifiche per creare o aggiornare la distribuzione API.
- (Facoltativo) Confermare che l'interfaccia API sia stata distribuita correttamente chiamandola (vedere Chiamata di un'interfaccia API distribuita in un gateway API).
Modifica di un file JSON per aggiungere risposte scorte a una specifica di distribuzione API
Per aggiungere risposte stock a una specifica di distribuzione API in un file JSON, procedere come segue.
-
Utilizzando l'editor JSON preferito, modificare la specifica di distribuzione API esistente alla quale si desidera aggiungere un back-end di risposta stock o creare una nuova specifica di distribuzione API (vedere Creazione di una specifica di distribuzione API).
Ad esempio, la seguente specifica di distribuzione API di base definisce una semplice funzione serverless Hello World in Funzioni OCI come un singolo backend:
{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } } ] }
-
Nella sezione
routes
, includere una nuova sezionepath
per un back-end di risposta stock:{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } }, { "path": "<api-route-path>", "methods": ["<method-list>"], "backend": { "type": "STOCK_RESPONSE_BACKEND", "status": <http-response-code>, "headers": [{ "name": "<header-name>", "value": "<header-value>" }], "body": "<body-content>" } } ] }
dove:
-
<api-route-path>
specifica un percorso per le chiamate API utilizzando i metodi elencati per il back-end di risposta stock. Tenere presente che il percorso di instradamento specificato è il seguente:- è relativo al prefisso del percorso di distribuzione (vedere Distribuzione di un'API in un gateway API mediante la creazione di una distribuzione API)
- deve essere preceduta da una barra ( / ) e può essere solo la singola barra
- può contenere più barre in avanti (a condizione che non siano adiacenti) e può terminare con una barra in avanti
- può includere caratteri alfanumerici maiuscoli e minuscoli
- può includere i caratteri speciali
$ - _ . + ! * ' ( ) , % ; : @ & =
-
può includere parametri e caratteri jolly (vedere Aggiunta di parametri di percorso e caratteri jolly ai percorsi di instradamento)
<method-list>
specifica uno o più metodi accettati dal back-end di risposta stock, separati da virgole. Ad esempio,"GET, PUT"
."type": "STOCK_RESPONSE_BACKEND"
indica che il gateway API stesso fungerà da backend e restituirà la risposta stock definita (il codice di stato, i campi intestazione e il contenuto del corpo).<http-response-code>
è un codice di risposta HTTP valido. ad esempio200
"name": "<header-name>", "value": "<header-value>"
specifica facoltativamente il nome di un'intestazione di risposta HTTP e il relativo valore. Ad esempio,"name": "Content-Type", "value":"application/json"
. È possibile specificare più coppie"name": "<header-name>", "value": "<header-value>"
nella sezioneheaders:
(fino a un massimo di 50). Si noti che in ogni caso:<header-name>
non deve superare 1 KB di lunghezza<header-value>
non deve superare i 4 KB di lunghezza
"body": "<body-content>"
specifica facoltativamente il contenuto del corpo della risposta in un formato appropriato. Ad esempio:- Se l'intestazione
Content-Type
ètext/plain
, il corpo della risposta potrebbe essere"body": "Hello world"
. - Se l'intestazione
Content-Type
èapplication/json
, il corpo della risposta potrebbe essere"body": "{\"username\": \"john.doe\"}"
. Nel caso di una risposta JSON, tenere presente che le virgolette nella risposta devono essere precedute da una barra rovesciata (\
).
Si noti che
<body-content>
non deve superare i 5 KB di lunghezza (inclusa qualsiasi codifica).- Se l'intestazione
In questo esempio, una richiesta al percorso
/test
restituisce un codice di stato 200 e un payload JSON nel corpo della risposta.{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } }, { "path": "/test", "methods": ["GET"], "backend": { "type": "STOCK_RESPONSE_BACKEND", "status": 200, "headers": [{ "name": "Content-Type", "value": "application/json" }], "body" : "{\"username\": \"john.doe\"}" } } ] }
In questo esempio, una richiesta al percorso
/test-redirect
restituisce un codice di stato 302 e un URL temporaneo nell'intestazioneLocation
della risposta. In questo esempio viene inoltre dimostrato che è possibile creare una specifica di distribuzione API con un solo instradamento a un backend di tipo STOCK_RESPONSE_BACKEND.{ "routes": [ { "path": "/test-redirect", "methods": ["GET"], "backend": { "type": "STOCK_RESPONSE_BACKEND", "status": 302, "headers": [{ "name": "Location", "value": "http://www.example.com" }] } } ] }
-
- Salvare il file JSON contenente la specifica di distribuzione API.
-
Utilizzare la specifica di distribuzione API quando si crea o si aggiorna una distribuzione API nei modi riportati di seguito.
- specificando il file JSON nella console quando si seleziona l'opzione Carica un'interfaccia API esistente
- specificando il file JSON in una richiesta all'API REST del gateway API
Per ulteriori informazioni, vedere Distribuzione di un'interfaccia API in un gateway API mediante la creazione di una distribuzione API e Aggiornamento di un gateway API o di una distribuzione API.
- (Facoltativo) Confermare che l'interfaccia API sia stata distribuita correttamente chiamandola (vedere Chiamata di un'interfaccia API distribuita in un gateway API).