Requêtes et réponses en flux continu

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Ce que vous allez apprendre dans cet article

Après l'avoir, vous saurez :

  • ce qu'est le streaming des requêtes et des réponses dans Apigee Edge ;
  • quand utiliser le streaming des requêtes et des réponses ;
  • comment activer le streaming des requêtes et des réponses.

Qu'est-ce que le streaming des requêtes et des réponses ?

Par défaut, le streaming HTTP est désactivé et les charges utiles de requêtes et de réponses sont écrites dans un tampon en mémoire avant d'être traitées par le pipeline de proxy d'API. Vous pouvez modifier ce comportement en activant le streaming. Si le streaming est activé, les charges utiles de requêtes et de réponses sont diffusées sans modification vers l'application cliente (pour les réponses) et le point de terminaison cible (pour les requêtes).

Quand dois-je activer le traitement par flux ?

Si votre proxy d'API gère des requêtes et/ou des réponses très volumineuses (pour connaître les limites de taille, consultez la section Autres informations sur le streaming ci-dessous), vous pouvez activer le streaming.

Que dois-je savoir de plus sur le streaming ?

La taille de la charge utile des messages est limitée à 10 Mo dans Edge Cloud et privé, même si le streaming est activé. Dans les requêtes et les réponses non diffusées en streaming, cette taille génère une erreur protocol.http.TooBigBody.

Dans les déploiements Edge pour Private Cloud, vous pouvez modifier la taille de la requête/réponse non diffusée en continu limite. Veillez à effectuer des tests avant de déployer le changement en production.

  • Pour les versions d'Edge pour Private Cloud antérieures à la version 4.16.01:

    Sur tous les processeurs de messages, modifiez le fichier http.properties pour augmenter la valeur dans le paramètre HTTPResponse.body.buffer.limit, puis redémarrer le processeur de messages.
  • Pour Edge for Private Cloud versions 4.16.01 et ultérieures: <ph type="x-smartling-placeholder">
      </ph>
    1. Modifiez le fichier /&lt;inst_root&gt;/apigee/customer/application/message-processor.properties. Si ce fichier n'existe pas, créez-le.

    2. Définissez le paramètre conf_http_HTTPResponse.body.buffer.limit dans message-processor.properties. Pour exemple:
      conf_http_HTTPResponse.body.buffer.limit=5m

    3. Redémarrez le processeur de messages:
      &gt; /<racine_inst_root>/apigee/apigee-service/bin/apigee-service Edge-message-processor redémarrer

    4. Répétez l'opération pour tous les processeurs de messages.

comment activer le streaming des requêtes et des réponses.

Pour activer le streaming des requêtes, vous devez ajouter la propriété request.streaming.enabled aux définitions ProxyEndpoint et TargetEndpoint du groupe de proxys et la définir sur true. De même, définissez la propriété response.streaming.enabled pour activer le streaming de réponse.

Vous pouvez localiser ces fichiers de configuration dans l'interface utilisateur de gestion, dans la vue Développement de votre proxy. Si vous développez en local, ces fichiers de définition se trouvent dans apiproxy/proxies et apiproxy/targets.

Cet exemple montre comment activer le streaming des requêtes et des réponses dans la définition de 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>

Cet exemple montre comment activer le streaming des requêtes et des réponses et dans la définition de 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>

Pour en savoir plus sur la configuration des points de terminaison, consultez la documentation de référence sur les propriétés de point de terminaison.

Exemples de code associés

Les exemples de proxy d'API sur GitHub sont faciles à télécharger et à utiliser. Reportez-vous à la page Utiliser les exemples de proxy d'API pour en savoir plus sur le téléchargement et l'utilisation des exemples.

Voici quelques exemples de proxys qui intègrent le streaming :