Configurazione della politica Richiama per DataPower API Gateway
Seguire questa procedura per configurare la politica Richiama per DataPower® API Gateway nell'interfaccia utente dell'assembly.
Informazioni su questa attività
Per i dettagli su come configurare la politica nella fonte OpenAPI , vedi invoke.
Procedura
- Nel riquadro di navigazione, fai clic su
Develop, quindi seleziona la scheda API.Viene aperta la pagina Sviluppa . - Fai clic sul titolo della definizione API che vuoi utilizzare.
- Selezionare la scheda Gateway , quindi fare clic su Politiche nel riquadro di navigazione.Per ulteriori informazioni sull'utilizzo dell'editor di assemblaggio per un'API, consultare L'editor di assemblaggio.
- Trova la politica Richiama nella tavolozza e trascina la politica nell'area.
- Specificare le seguenti proprietà.
Tabella 1. Proprietà della politica Richiama Etichetta proprietà Obbligatorio Descrizione Tipo di dati Titolo Vero Il titolo della politica. Il valore predefinito è
invoke.stringa Descrizione N Una descrizione della politica. stringa URL Vero Specifica un indirizzo URL per il servizio di destinazione. Per un'API SOAP, viene aggiunto di default un URL. Ove possibile, il valore di Invoke URL viene fornito dalle informazioni definite nel WSDL importato.
stringa Tipo di backend N Selezionare una delle opzioni riportate di seguito per determinare il modo in cui il payload viene inviato al backend. - Rilevamento
- Rileva il tipo di messaggio e invia il payload al backend di conseguenza.
- XML
- Impacchettare il payload come XML e inviare. Se il tipo di messaggio non è XML, l'operazione ha esito negativo.
- JSON
- Impacchettare il payload come JSON e inviare. Se il tipo di messaggio non è JSON, l'operazione non riesce.
- Binario
- Impacchetta il payload come binario e invia, indipendentemente dal tipo di messaggio.
- GraphQL
- Impacchettare il payload come GraphQL e inviarlo. Se il tipo di messaggio non lo è GraphQL, l'operazione fallisce.
Il valore predefinito è Rileva.
stringa GraphQL tipo invio(versione della politica 2.2.0 e successive) Sì, se il tipo di backend è impostato su GraphQL o Detect e HTTP Method è impostato su POST o Keep Selezionare uno dei seguenti valori per determinare come il payload GraphQL viene inviato al backend. - Rilevamento
- Rileva il tipo di messaggio e invia il payload al backend di conseguenza.
- GraphQL
- Impacchettare il payload come GraphQL e inviarlo. Se il tipo di messaggio non lo è GraphQL, l'operazione fallisce.
- JSON
- Impacchettare il payload come JSON e inviare. Se il tipo di messaggio non lo è GraphQL, l'operazione fallisce.
Nota: Il tipo di invio GraphQL è supportato solo se il tipo di backend è impostato su GraphQL o Detect e HTTP Method è impostato su POST o Keep.stringa Profilo TLS N Specifica un profilo TLS da utilizzare per la trasmissione sicura dei dati. stringa Scadenza Vero Il tempo di attesa prima di una risposta dall'endpoint (in secondi). Il valore predefinito è
60.intero Segui reindirizzamenti N Specifica il comportamento se il server back-end restituisce il codice di stato HTTP 301 Moved Permanently. Se si seleziona questa casella di controllo, il criterioinvokesegue il reindirizzamento URL effettuando un'ulteriore chiamata all'indirizzo URL specificato nell'intestazioneLocationdella risposta. Se si deseleziona questa casella di spunta,invokesalva il codice di stato301e la chiamata API viene considerata completa.Nota: la proprietàfollow-redirectè supportata solo da DataPower API Gateway. Se si utilizza DataPower Gateway (v5 compatible),invokesegue sempre il reindirizzamento URL ; il criterio (non supportato da ) salva il codice di stato e completa la chiamata API senza seguire il reindirizzamentoproxy(non supportata da DataPower API Gateway ) salva il codice di stato301e completa la chiamata API senza seguire il reindirizzamento URL.booleano Nome utente N Il nome utente da utilizzare per l'autenticazione di base HTTP. stringa Password N La password da utilizzare per l'autenticazione di base HTTP. stringa Metodo HTTP Vero Il metodo HTTP da utilizzare per Richiama. Di seguito i valori validi. - Conserva
- ACQUISISCI
- INVIARE
- INSERISCI
- ELIMINA
- PATCH
- INTESTAZIONE
- OPZIONI
GET. Tuttavia, se impostato suKeepo se la proprietà viene rimossa dalla sorgente, viene utilizzato il metodo HTTP della richiesta in arrivo.stringa HTTP Versione (versione del criterio 2.1.0 e successive) Vero La versione di HTTP che verrà utilizzata per la connessione al server backend. Selezionare uno dei seguenti valori. - HTTP/1.0
- HTTP/1.1
- HTTP/2
stringa HTTP/2 Obbligatorio (versione politica 2.1.0 e successive) N Selezionare questa casella di spunta per richiedere che il server selezioni HTTP/2 durante una connessione TLS, altrimenti DataPower API Gateway rifiuta la connessione e non riesce la richiesta. Per una connessione non TLS, viene registrata un'avvertenza che indica che non è possibile applicare il requisito. Questa impostazione si applica solo se HTTP Version è impostato su HTTP/2. booleano Compressione N Selezionare questa casella di spunta per abilitare la compressione Content - Encoding al caricamento. La casella di spunta è deselezionata per impostazione predefinita.
booleano Tipo di cache
N Il tipo di cache determina se mettere in cache i documenti, rispettando o sovrascrivendo le direttive di HTTP Cache Control ricevute nella risposta dal sito di destinazione URL. Questa proprietà ha effetto solo quando viene ricevuta una risposta, altrimenti la politica restituisce sempre la risposta non scaduta precedentemente salvata nella cache. I valori validi sono:- Protocollo
- Il comportamento della cache è determinato dalle intestazioni Cache - Control sulla risposta, in conformità con RFC 7234.
Per ottimizzare le prestazioni, se il gateway riceve più di una richiesta per una risorsa che non è presente nella cache ma che potrebbe essere memorizzata nella cache quando viene ricevuta la risposta dal sito URL di destinazione, il gateway invia solo una richiesta al sito URL di destinazione; le altre richieste non vengono elaborate fino a quando non viene ricevuta la risposta alla prima richiesta e non viene determinato il comportamento della cache in base a tale risposta. Se la risposta indica che la memorizzazione nella cache è possibile, il gateway risponde a tutte le richieste in attesa con la risorsa memorizzata nella cache. Se la risposta indica che il caching non è possibile, il gateway invia tutte le richieste in attesa al sito di destinazione URL.
Utilizzare questa opzione solo se si prevede che le risposte dal sito URL di destinazione possano essere memorizzate nella cache, nel qual caso dovrebbe migliorare le prestazioni e limitare la richiesta al sito URL di destinazione. Se, tuttavia, la destinazione URL non indica mai che il gateway deve memorizzare nella cache la sua risposta, le prestazioni potrebbero essere ridotte rispetto all'opzione No Cache.
- Nessuna cache
- Le risposte del sito URL di destinazione non vengono memorizzate nella cache del gateway, indipendentemente dalle intestazioni di cache restituite. In questo caso, ogni richiesta del client viene inviata alla destinazione URL.
Usare questa opzione se non si vuole memorizzare nella cache nessuna delle risposte del backend sul gateway, o se è improbabile che una risposta dal sito di destinazione URL permetta la memorizzazione nella cache attraverso le impostazioni dell'intestazione Cache-Control.
- TTL (Time to Live)
- Questa opzione è simile all'opzione Protocollo tranne per il fatto che consente di specificare la quantità di tempo in cui si desidera che la risposta corretta dal richiamo o dal proxy rimanga nella cache. Utilizzare questa opzione solo se si prevede che le risposte del sito URL di destinazione possano essere memorizzate nella cache.
Il valore predefinito è Protocollo.
stringa TTL (Time to Live) N Specifica la quantità di tempo, in secondi, in cui la risposta rimane nella cache. Si applica solo se la proprietà Tipo di cache è impostata su Time to Live. Immettere un valore compreso nell'intervallo da 5 a 31708800.Il valore predefinito è
900.intero Chiave della cache N Specifica l'identificativo univoco della voce cache del documento. Se questo valore non viene specificato, l'intera stringa URL verrà utilizzata come chiave. stringa Allow WebSocket Upgrade (versione della politica 2.1.0 e successive) N Selezionare questa casella di controllo per consentire l'aggiornamento di una connessione HTTP o HTTPS al protocollo WebSocket se la richiesta ricevuta dal gestore corrispondente HTTP o HTTPS su DataPower API Gateway utilizza WebSocket (ws) o WebSocket Secure (wss). Nota:- Questa impostazione è disponibile solo per API GraphQL .
- L'impostazione Consenti aggiornamento WebSocket è obsoleta. Per consentire le richieste di aggiornamento WebSocket che possono gestire i dati di elaborazione API, definisci una politica di aggiornamento WebSocket dell'assembly. Per ulteriori informazioni, vedi Websocket Upgrade.
booleano Inserisci intestazioni proxy N Se si seleziona questa casella di controllo, il criterio invokeinietta le intestazioniX-Forwarded-For,X-Forwarded-To,X-Forwarded-HosteX-Forwarded-Protonella richiesta inviata al target URL.La casella di spunta è deselezionata per impostazione predefinita.
booleano Parametri richiesta Decode N Se si seleziona questa casella di controllo, tutti i parametri di richiesta che sono referenziati da una definizione di variabile sul sito URL di destinazione del criterio di invocazione vengono decodificati URL. La casella di spunta è deselezionata per impostazione predefinita.
booleano Codifica dei parametri della query N Se si seleziona questa casella di controllo, tutti i caratteri "+" nei valori dei parametri di query del sito URL di destinazione vengono codificati in %2F. La casella di spunta è deselezionata per impostazione predefinita.
booleano Conserva Payload N Se si seleziona questa casella di spunta, la politica di richiamo invia un payload su un metodo HTTP DELETE.La casella di spunta è deselezionata per impostazione predefinita.
booleano Limitarsi a HTTP 1.0 (solo la versione della politica 2.0.0 ) N Se si seleziona questa casella di controllo, le transazioni di HTTP sono limitate alla versione 1.0. La casella di controllo è deselezionata per impostazione predefinita.
booleano Consenti caricamenti in blocchi N Se si seleziona questa casella di spunta, i documenti codificati in blocchi vengono inviati al server. Quando si utilizza il protocollo HTTP 1.1, il corpo del documento può essere delimitato dalla codifica Content-Lengtho chunked. Mentre tutti i server possono interpretareContent-Length, molte applicazioni non riescono a comprendere i documenti codificati in blocchi. Per questo motivo,Content-Lengthè il metodo standard.L'utilizzo di
Content-Lengthinterferisce con la capacità di DataPower Gateway di eseguire il flusso completo. Se è necessario inviare documenti completi al server di destinazione, abilitare questa proprietà.Se abilitato, il server deve essere compatibile con RFC 2616. A differenza di tutte le altre funzioni HTTP 1.1 che possono essere negoziate in fase di esecuzione, è necessario sapere in precedenza se il server di destinazione è compatibile con la RFC 2616.
La casella di spunta è selezionata per impostazione predefinita.
Nota: La codifica Chunked non è supportata dal protocollo HTTP 1.0.booleano Connessione persistente (versione politica 2.3.0 e successive) N Selezionare questa casella di controllo per abilitare le connessioni persistenti di HTTP, consentendo il riutilizzo della connessione. La casella di spunta è selezionata per impostazione predefinita.
booleano Controllo intestazione N Specifica le intestazioni in message.headersche si desidera copiare nella destinazione URL.Per impedire la copia delle intestazioni, completare la seguente procedura.- Selezionare Blocklist.
- Fai clic su Add blocklist.
- Nel campo vuoto visualizzato, immettere il nome dell'intestazione.
- Per aggiungere ulteriori intestazioni, ripetere i passi precedenti.
Per specificare le intestazioni che si desidera copiare, effettuare le operazioni riportate di seguito.- Selezionare Allowlist.
- Fare clic su Aggiungi allowlist.
- Nel campo vuoto visualizzato, immettere il nome dell'intestazione.
- Per aggiungere ulteriori intestazioni, ripetere i passi precedenti.
I valori specificati sono in formato di espressione regolare. Ad esempio, per specificare l'intestazione Content-Type, immettere
^Content-Type$Per impostazione predefinita, è selezionato Blocklist , senza voci di blocklist, il che significa che vengono copiate tutte le intestazioni.
stringa Controllo parametro N Specifica i parametri della richiesta in entrata che si desidera copiare nella destinazione URL. Per impedire la copia dei parametri, effettuare le operazioni riportate di seguito.- Selezionare Blocklist.
- Fai clic su Add blocklist.
- Nel campo vuoto visualizzato, immettere il nome del parametro.
- Per aggiungere ulteriori parametri, ripetere i passaggi precedenti.
Per specificare i parametri che si desidera copiare, completare la seguente procedura.- Selezionare Allowlist.
- Fare clic su Aggiungi allowlist.
- Nel campo vuoto visualizzato, immettere il nome del parametro.
- Per aggiungere ulteriori parametri, ripetere i passaggi precedenti.
I valori specificati sono in formato di espressione regolare.
Ad esempio, se la richiesta in entrata è
e si specifica una voce della lista bianca dihttp://apigw/org/sandbox/petstore/base?petid=100&display=detailed^petid$, il target URL in fase di esecuzione saràhttp://myhost/mypath?storeid=3&petid=100Per impostazione predefinita, è selezionato Allowlist , senza voci allowlist, il che significa che nessun parametro viene copiato.
stringa Arresta in caso di errore N Selezionare gli errori che, se generati durante l'esecuzione della politica, causano l'arresto del flusso di assemblaggio. Se esiste un flusso catchconfigurato per l'errore, viene attivato per gestire l'errore generato. Se viene generato un errore e non vi sono errori selezionati per l'impostazione Arresta in caso di errore o se l'errore generato non è uno degli errori selezionati, l'esecuzione della politica è consentita e il flusso di assemblaggio continua.stringa Variabile oggetto risposta
N Il nome di una variabile che verrà utilizzata per archiviare i dati della risposta. Per impostazione predefinita, la risposta di chiamata, ovvero il corpo, le intestazioni, statusCode E statusMessage, viene salvato nella variabile Messaggio. Utilizzare questa proprietà per specificare un'ubicazione alternativa in cui memorizzare la risposta di richiamo. È possibile fare riferimento a questa variabile in altre azioni, come ad esempio Mappa. Nota: se si desidera che la risposta venga salvata in messaggio, lasciare vuota la proprietà Variabile oggetto risposta , non fornire il valore message.stringa Buffering N Selezionare Buffering per specificare se bufferizzare il payload. Se si seleziona Buffering, il payload viene bufferizzato e il criterio Invoke può controllare il tipo di payload. Se non si seleziona Buffering, il payload viene trasmesso in streaming e il criterio Invoke non può controllare il tipo di payload. Nota: Se si attiva il buffering, è necessario configurare anche un criterio di analisi per interpretare il payload. Senza una politica Parse, il payload rimane un buffer non interpretato e la politica Invoke ha successo se il servizio di backend accetta payload di tipobinaryodetect. Se è configurato un criterio Parse, esso disabilita implicitamente lo streaming, anche se il buffering è disattivato, perché il parsing richiede il buffering dell'intero payload. Per ulteriori informazioni, vedere Parse.booleano - Specificare una versione per il criterio facendo clic sull'icona Sorgente
e completando la sezione versiondel criterio YAML. Ad esempio:
È possibile specificare una versione per la politica compatibile con il gateway che si sta utilizzando. Quando l'API viene pubblicata, se la versione è incompatibile con il gateway, viene generato un errore di convalida che specifica le versioni disponibili.execute: - invoke: version: 2.0.0 title: invoke ... - Fare clic su Salva.
Esempio
- invoke:
version: 2.0.0
title: get the account status
target-url: https://example.com/accounts/{id}?status={status}
cache-response: time-to-live
cache-putpost-response: true
tls-profile: MyTLSProfile:1.0.0
verb: POST
timeout: 60
compression: false
username: MyUser
password: MyPassword
stop-on-error:
- ConnectionError
- OperationError