Vous consultez la documentation d'Apigee Edge.
Consultez la
documentation 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 dans 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 erreur protocol.http.TooBigBody
.
Dans les déploiements Edge for Private Cloud, vous pouvez modifier la limite de taille des requêtes/réponses non diffusées en continu. Veillez à effectuer des tests avant de déployer le changement en production.
- Pour les versions Edge for Private Cloud antérieures à la version 4.16.01:
Sur tous les processeurs de messages, modifiez le fichierhttp.properties
pour augmenter la limite dans le paramètreHTTPResponse.body.buffer.limit
, puis redémarrez le processeur de messages. -
Pour Edge for Private Cloud version 4.16.01 et ultérieures:
-
Modifiez le fichier /<inst_root>/apigee/customer/application/message-processor.properties. Si ce fichier n'existe pas, créez-le.
-
Définissez la propriété conf_http_HTTPResponse.body.buffer.limit dans message-processor.properties. Par exemple:
conf_http_HTTPResponse.body.buffer.limit=5m -
Redémarrez le processeur de messages:
> /<inst_root>/apigee/apigee-service/bin/apigee-serviceedge-message-processor restart -
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, au niveau de 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 :
- streaming : illustre un proxy d'API configuré pour le streaming HTTP.
- Accroche Edge : Générateur d'URL signée : illustre la bonne pratique qui consiste à générer une URL signée pour accéder à des fichiers volumineux au lieu d'essayer de les diffuser dans une requête/réponse.