Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.
Cosa imparerete su questo argomento
Dopo aver letto questo argomento, avrai appreso quanto segue:
- Cosa sono i flussi di richieste e risposte su Apigee
- Quando utilizzare i flussi di richieste e risposte
- Come abilitare il flusso di richieste e risposte
Che cos'è un flusso di richieste e risposte?
Per impostazione predefinita, il flusso HTTP è disabilitato e i payload HTTP di richieste e risposte vengono scritti in un buffer in memoria prima di essere elaborati dalla pipeline proxy API. Puoi modificare questo comportamento abilitando il flusso di dati. Con i flussi di dati abilitati, i payload di richiesta e risposta vengono trasmessi senza modifiche all'app client (per le risposte) e all'endpoint di destinazione (per le richieste).
Quando devo abilitare i flussi di dati?
Se il tuo proxy API gestisce richieste e/o risposte molto grandi (per i limiti di dimensione, consulta Che cos'altro devo sapere sui flussi di dati), ti consigliamo di abilitare i flussi di dati.
Che cos'altro dovrei sapere sullo streaming?
La dimensione del payload dei messaggi è limitata a 10 MB.
Nelle richieste e nelle risposte non in streaming, il superamento di queste dimensioni genera un errore protocol.http.TooBigBody
.
Dati codificati
Quando il flusso è abilitato, Apigee non codifica o decodifica i payload di richiesta o risposta prima di inviarli al client che si connette ad Apigee o a un server di destinazione di backend. Per saperne di più, consulta le righe per request.streaming.enabled
e response.streaming.enabled
nella tabella
Specifica delle proprietà di trasporto TargetEndpoint.
Come abilitare il flusso di richieste e risposte
Per attivare il flusso di richieste, devi aggiungere la proprietà request.streaming.enabled
alle definizioni di ProxyEndpoint e TargetEndpoint nel pacchetto proxy e impostarla su
true
. Allo stesso modo, imposta la proprietà response.streaming.enabled
per abilitare il flusso di risposte.
Puoi individuare questi file di configurazione nell'interfaccia utente di Apigee nella visualizzazione Sviluppo per il tuo proxy. Se stai sviluppando in locale, questi file di definizione si trovano in apiproxy/proxies
e apiproxy/targets
.
Questo esempio mostra come abilitare i flussi di richieste e risposte nella definizione di TargetEndpoint.
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> <Properties> <Property name="response.streaming.enabled">true</Property> <Property name="request.streaming.enabled">true</Property> <Property name="supports.http10">true</Property> <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property> <Property name="retain.queryparams">apikey</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
Questo esempio mostra come abilitare il flusso di risposte e richieste nella definizione di ProxyEndpoint:
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <Property name="allow.http10">true</Property> <Property name="response.streaming.enabled">true</Property> <Property name="request.streaming.enabled">true</Property> </Properties> </HTTPProxyConnection> </ProxyEndpoint>
Per saperne di più sulla configurazione delle definizioni degli endpoint, consulta la documentazione di riferimento sulle proprietà degli endpoint.
Esempi di codice correlati
Gli esempi di proxy API su GitHub sono facili da scaricare e utilizzare.
I proxy di esempio che includono i flussi di dati includono:
- flusso di dati: mostra un proxy API configurato per i flussi HTTP.
- Callout perimetrale: generatore di URL firmato: illustra la best practice per la generazione di un URL firmato per accedere a file di grandi dimensioni invece di provare a trasmetterli in streaming in una richiesta/risposta.