Flussi di dati per richieste e risposte

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Argomenti trattati in questa pagina

Dopo aver letto questa pagina, saprai:

  • Che cos'è lo streaming di richieste e risposte su Apigee Edge
  • 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 attivato, i payload delle richieste e delle 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 proxy API gestisce richieste e/o risposte di dimensioni molto grandi (per i limiti di dimensione, consulta la sezione Che cos'altro devo sapere sullo streaming di seguito), potresti voler attivare lo streaming.

Che cos'altro devo sapere sullo streaming?

La dimensione del payload del messaggio è limitata a 10 MB in Edge Cloud e Private Cloud, anche con lo streaming attivato. Nelle richieste e nelle risposte non trasmesse in streaming, il superamento di questa dimensione genera un errore protocol.http.TooBigBody.

Nelle implementazioni di Edge for Private Cloud, puoi modificare il limite di dimensione per richieste/risposte non trasmesse in streaming. Assicurati di eseguire i test prima di eseguire il deployment della modifica in produzione.

  • Per le release di Edge for Private Cloud precedenti alla 4.16.01:

    Su tutti i processori di messaggi, modifica il file http.properties per aumentare il limite nel parametro HTTPResponse.body.buffer.limit e quindi riavvia il processore di messaggi.
  • Per la release 4.16.01 e successive di Edge for Private Cloud:
    1. Modifica il file /<inst_root>/apigee/customer/application/message-processor.properties. Se il file non esiste, crealo.

    2. Imposta la proprietà conf_http_HTTPResponse.body.buffer.limit in message-processor.properties. Ad esempio:
      conf_http_HTTPResponse.body.buffer.limit=5m

    3. Riavvia il processore di messaggi:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    4. Ripeti l'operazione per tutti i Message Processor.

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 del 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 nell'UI di gestione nella visualizzazione Sviluppa del tuo proxy. Se stai sviluppando 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 TargetEndpoint definizione.

<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 risposte e richieste nella definizione 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 maggiori informazioni sulla configurazione delle definizioni degli endpoint, consulta la sezione Riferimento alle proprietà degli endpoint.

Esempi di codice correlati

Gli esempi di proxy API su GitHub sono facili da scaricare e utilizzare. Per informazioni sul download e sull'utilizzo degli esempi, consulta la sezione Utilizzare gli esempi di proxy API.

I proxy di esempio che includono lo streaming sono:

  • streaming - 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é tentare di trasmetterli in streaming in una richiesta/risposta.