Flussi di dati per richieste e risposte

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Che cosa imparerai su questo argomento

Dopo aver letto questo argomento, saprai che:

  • Cosa sono i flussi di richieste e risposte su Apigee Edge?
  • Quando utilizzare lo streaming di richieste e risposte
  • Come abilitare il flusso di richieste e risposte

Che cos'è lo streaming 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 attivando i flussi di dati. Con i flussi di dati abilitati, i payload di richieste e risposte 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 dimensione, consulta la sezione Che cos'altro devo sapere sui flussi di dati di seguito), ti consigliamo di attivare i flussi.

Cos'altro dovrei sapere sullo streaming?

La dimensione del payload dei messaggi è limitata a 10 MB in Edge Cloud e Private Cloud, anche con i flussi di dati abilitati. Nelle richieste e nelle risposte non in streaming, il superamento di questa dimensione genera un errore protocol.http.TooBigBody.

In Edge per i deployment nel cloud privato, puoi modificare il limite di dimensioni di richieste/risposte non trasmesse in streaming. Assicurati di eseguire i test prima di eseguire il deployment della modifica in produzione.

  • Per le release Edge per Private Cloud precedenti alla 4.16.01:

    In tutti i processori di messaggi, modifica il file http.properties per aumentare il limite nel parametro HTTPResponse.body.buffer.limit, quindi riavvia il processore di messaggi.
  • Per Edge per Private Cloud release 4.16.01 e successive:
    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 reboot

    4. Ripeti l'operazione per tutti i processori di messaggi.

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 pacchetto proxy e impostarla su true. Allo stesso modo, imposta la proprietà response.streaming.enabled per attivare il flusso di risposte.

Puoi individuare questi file di configurazione nell'interfaccia utente di gestione nella visualizzazione Sviluppo del proxy. Se stai sviluppando in locale, 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 il riferimento sulle proprietà degli endpoint.

Esempi di codice correlati

Gli esempi di proxy API su GitHub sono facili da scaricare e utilizzare. Consulta Utilizzo dei proxy API di esempio per informazioni sul download e sull'utilizzo degli esempi.

Proxy di esempio che includono lo streaming di funzionalità:

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