Streaminganfragen und -antworten

Diese Seite gilt für Apigee und Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

Lerninhalte zu diesem Thema

Nachdem Sie dieses Thema gelesen haben, wissen Sie:

  • Was das Anfrage- und Antwort-Streaming auf Apigee Edge ist
  • In welchen Fällen Anfrage- und Antwort-Streaming verwendet werden
  • Anfrage- und Antwortstreaming aktivieren

Was ist Anfrage- und Antwort-Streaming?

HTTP-Streaming ist standardmäßig deaktiviert und HTTP-Anfrage- und -Antwortnutzlasten werden in einen Zwischenspeicher geschrieben, bevor sie von der API-Proxypipeline verarbeitet werden. Sie können dieses Verhalten ändern, indem Sie das Streaming aktivieren. Wenn Streaming aktiviert ist, werden Anfrage- und Antwortnutzlasten ohne Änderung der Client-App (für Antworten) und des Zielendpunkts (für Anfragen) gestreamt.

Wann sollte ich Streaming aktivieren?

Wenn Ihr API-Proxy sehr große Anfragen und/oder Antworten verarbeitet (Informationen zur Größenbeschränkung finden Sie weiter unten im Abschnitt Weitere Informationen zum Streaming), sollten Sie das Streaming aktivieren.

Was sollte ich außerdem über Streaming wissen?

Die Nachrichtennutzlast ist auf 10 MB beschränkt. Bei nicht gestreamten Anfragen und Antworten führt die Überschreitung dieser Größe zu einem protocol.http.TooBigBody-Fehler.

Codierte Daten

Wenn Streaming aktiviert ist, codiert oder decodiert Apigee Anfrage- oder Antwortnutzlasten nicht, bevor sie an den Client gesendet werden, der eine Verbindung zu Apigee oder einem Backend-Zielserver herstellt. Weitere Informationen finden Sie in den Zeilen für request.streaming.enabled und response.streaming.enabled in der Tabelle Spezifikation des TargetEndpoint Transport-Attributs.

Anfrage- und Antwortstreaming aktivieren

Zum Aktivieren des Anfragestreamings müssen Sie das Attribut request.streaming.enabled den ProxyEndpoint- und TargetEndpoint-Definitionen im Proxy-Bundle hinzufügen und auf true setzen. Legen Sie entsprechend das Attribut response.streaming.enabled fest, um das Antwort-Streaming zu aktivieren.

Sie finden diese Konfigurationsdateien in der Apigee-UI in der Ansicht "Entwicklung" für Ihren Proxy. Bei der lokalen Entwicklung befinden sich diese Definitionsdateien in apiproxy/proxies und apiproxy/targets.

In diesem Beispiel wird gezeigt, wie sowohl das Anfrage- als auch das Antwort-Streaming in der Definition von TargetEndpoint aktiviert wird.

<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>

In diesem Beispiel wird gezeigt, wie das Antwort- und Anfrage-Streaming in der ProxyEndpoint-Definition aktiviert wird:

<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>

Weitere Informationen zum Konfigurieren von Endpunktdefinitionen finden Sie unter Endpunktattribute – Referenz.

Verwandte Codebeispiele

API-Proxy-Beispiele auf GitHub können leicht heruntergeladen und verwendet werden.

Beispiele für Proxys mit Feature-Streaming:

  • streaming: Veranschaulicht einen API-Proxy, der für HTTP-Streaming konfiguriert ist.
  • Edge-Callout: Signierte URL-Generator: Hiermit wird empfohlen, eine signierte URL zu generieren, um auf große Dateien zuzugreifen, anstatt sie in einer Anfrage/Antwort zu streamen.