Flussi di dati per richieste e risposte

Questa pagina si applica a Apigee e Apigee ibrido.

Visualizza la documentazione di Apigee Edge.

Argomenti trattati in questo argomento

Dopo aver letto questo argomento, saprai quanto segue:

  • Che cos'è il flusso 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 di richiesta e risposta HTTP vengono scritti in un buffer in memoria prima di essere elaborati dalla pipeline proxy API. Puoi modificare questo comportamento abilitando i flussi di dati. Con la trasmissione in modalità flusso abilitata, 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 attivare lo streaming?

Se il tuo proxy API gestisce richieste e/o risposte molto grandi (per i limiti di dimensioni, consulta Che cos'altro devo sapere sul flusso di dati), potresti voler abilitare il flusso.

Cos'altro dovrei sapere sullo streaming?

Le dimensioni del payload dei messaggi sono limitate a 10 MB. Nelle richieste e nelle risposte non in streaming, il superamento di questa dimensione genera un errore protocol.http.TooBigBody.

Dati codificati

Quando è abilitato il flusso di dati, 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 ulteriori informazioni, vedi le righe per request.streaming.enabled e response.streaming.enabled nella tabella Specifica della proprietà di trasporto TargetEndpoint.

Come abilitare il flusso di richieste e risposte

Per abilitare il flusso di richieste, devi aggiungere la proprietà request.streaming.enabled alle definizioni di ProxyEndpoint e TargetEndpoint nel bundle 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 nella UI di Apigee nella vista Sviluppo del tuo proxy. Se stai sviluppando localmente, questi file di definizione si trovano in apiproxy/proxies e apiproxy/targets.

Questo esempio mostra come abilitare il flusso 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 Riferimento alle 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 flussi di dati includono:

  • flusso di dati: mostra un proxy API configurato per lo streaming HTTP.
  • Edge Callout: Signed URL Generator: illustra la best practice di generare un URL firmato per accedere a file di grandi dimensioni anziché provare a trasmetterli in streaming in una richiesta/risposta.