Requêtes et réponses en flux continu

Vous consultez la documentation Apigee Edge.
Accédez à la documentation**Apigee X**.
info

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

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 Edge pour le cloud 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 protocol.http.TooBigBody erreur.

Dans les déploiements Edge pour le cloud privé, vous pouvez modifier la limite de taille des requêtes/réponses non diffusées en streaming. Veillez à effectuer des tests avant de déployer la modification en production.

  • Pour les versions Edge pour le cloud privé antérieures à la version 4.16.01

    Sur tous les processeurs de messages, modifiez le fichier http.properties pour augmenter la limite dans le paramètre HTTPResponse.body.buffer.limit, puis redémarrez le processeur de messages.
  • Pour la version Edge pour le cloud privé 4.16.01 et versions ultérieures
    1. Modifiez le fichier /<inst_root>/apigee/customer/application/message-processor.properties. S'il n'existe pas, créez-le.

    2. Définissez la propriété conf_http_HTTPResponse.body.buffer.limit dans message-processor.properties. Par exemple :
      conf_http_HTTPResponse.body.buffer.limit=5m

    3. Redémarrez le processeur de messages :
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    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 trouver ces fichiers de configuration dans l'interface utilisateur de gestion de la vue "Développeur" pour 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 :