Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
Cosa imparerai in questo argomento
Dopo aver letto questo argomento, saprai:
- Che cos'è lo streaming di richieste e risposte su Apigee
- Quando utilizzare lo streaming di richieste e risposte
- Come attivare lo streaming di richieste e risposte
Che cos'è lo streaming di richieste e risposte?
Per impostazione predefinita, lo streaming HTTP è disattivato e i payload delle richieste e delle risposte HTTP vengono scritti in un buffer in memoria prima di essere elaborati dalla pipeline del proxy API. Puoi modificare questo comportamento attivando lo streaming. Con lo streaming abilitato, i payload di richieste e risposte vengono trasmessi in streaming senza modifiche all'app client (per le risposte) e all'endpoint di destinazione (per le richieste).
Quando devo attivare lo streaming?
Se il tuo proxy API gestisce richieste e/o risposte molto grandi (per i limiti di dimensione, vedi Cos'altro devo sapere sullo streaming), potresti voler attivare lo streaming.
Cos'altro dovrei sapere sullo streaming?
La dimensione del payload del messaggio è limitata a 30 MB.
Nelle richieste e nelle risposte non in streaming, il superamento
di questa dimensione comporta un errore protocol.http.TooBigBody.
Dati codificati
Quando lo streaming è abilitato, Apigee non codifica o decodifica i payload di richieste o risposte prima di inviarli al client che si connette ad Apigee o a un server di destinazione backend. Per saperne di più, consulta
le righe relative a request.streaming.enabled e response.streaming.enabled
nella tabella
Specifiche della proprietà di trasporto TargetEndpoint.
Come attivare lo streaming di richieste e risposte
Per attivare lo streaming delle richieste, devi aggiungere la proprietà request.streaming.enabled
alle definizioni ProxyEndpoint e TargetEndpoint nel bundle proxy e impostarla su
true. Allo stesso modo, imposta la proprietà response.streaming.enabled per attivare lo streaming delle risposte.
Puoi trovare questi file di configurazione nella UI di Apigee nella visualizzazione Sviluppo del tuo proxy. Se esegui lo sviluppo in locale, questi file di definizione si trovano in apiproxy/proxies
e apiproxy/targets.
Questo esempio mostra come attivare lo streaming 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 attivare lo streaming di richieste e risposte 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 Riferimento per le proprietà degli endpoint.
Esempi di codice correlato
Gli esempi di proxy API su GitHub sono facili da scaricare e utilizzare.
Esempi di proxy che supportano lo streaming:
- streaming: mostra un proxy API configurato per lo streaming HTTP.
- Edge Callout: Signed URL Generator (Callout perimetrale: generatore di URL firmati) - Illustra la best practice di generazione di un URL firmato per accedere a file di grandi dimensioni anziché tentare di riprodurli in streaming in una richiesta/risposta.