Requêtes et réponses en flux continu

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

Ce que vous allez apprendre dans cet article

Après avoir lu cet article, vous connaîtrez les informations suivantes :

  • ce qu'est le streaming des requêtes et des réponses dans Apigee ;
  • 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), 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 les requêtes et les réponses non diffusées en streaming, cette taille génère une erreur protocol.http.TooBigBody.

Données encodées

Lorsque la diffusion en continu est activée, Apigee n'encode et ne décode pas les charges utiles de requête ou de réponse avant de les envoyer au client se connectant à Apigee ou à un serveur cible backend. Pour en savoir plus, consultez les lignes request.streaming.enabled et response.streaming.enabled dans le tableau Spécifications de la propriété de transport TargetEndpoint.

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

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