Modèle de message
Comment configurer une stratégie Modèle de message pour créer une réponse d'API fictive pour DataPower® API Gateway dans l'éditeur d'assemblage.
Avant de commencer
| Passerelle | Version de la stratégie |
|---|---|
| DataPower API Gateway | 2.0.0 |
Cette rubrique explique comment configurer la stratégie dans l'éditeur d'assemblage. Pour plus de détails sur la configuration de la règle dans votre source OpenAPI , voir message-template.
A propos de cette tâche
Vous pouvez configurer une stratégie Modèle de message pour créer une réponse d'API fictive pour le DataPower API Gateway. Généralement, une réponse d'API est obtenue en créant une stratégie Invoke dans votre API qui interagit avec un service de back end. Toutefois, vous pouvez utiliser la stratégie Modèle de message pour générer une réponse factice en interne à l'aide de la logique d'assemblage, sans avoir à interagir avec un service de back end distinct. Cette réponse fictive peut renvoyer une réponse littérale simple, telle qu'un document JSON, ou elle peut inclure un contenu dynamique tel que des valeurs dérivées de la demande ou d'autres parties du contexte d'assemblage.
Vous pouvez effectuer cette tâche soit à l'aide de l'application d'interface utilisateur API Designer , soit à l'aide de l'interface utilisateur API Manager basée sur un navigateur.
Procédure
Exemples
- Exemple 1: réponse d'API fictive statique
- Un modèle Poignées sans expression, ce qui signifie que la sortie de l'exécution du modèle est uniquement le contenu du modèle. Dans cet exemple, la sortie est un document JSON.
{ "orderNumber": "OU812", "orderItems": [ { "itemCode": "7013-520", "quantity": 1 }, { "itemCode": "7013-590", "quantity": 1 } ] } - Exemple 2: réponse d'API avec contenu dynamique
- Cet exemple développe l'exemple 1, avec l'ajout d'une valeur extraite de la requête.
{ "customerId": "{{?request.parameters.customerId}}", "orderNumber": "OU812", "orderItems": [ { "itemCode": "7013-520", "quantity": 1 }, { "itemCode": "7013-590", "quantity": 1 } ] }Ici, la valeur
customerIdest obtenue à l'aide d'une expression Handlebars simple qui lit une valeur de propriété à partir du contexte d'entrée. Le résultat est que la valeur de la propriétécustomerIdqui est renvoyée dans la réponse est la valeur du paramètre dans la demande d'API. Des expressions telles que cet exemple peuvent être utilisées pour insérer les données de n'importe quel formulaire, et pas seulement des valeurs de propriété JSON. - Exemple 3: logique conditionnelle dans le modèle
- Cet exemple utilise la fonction intégrée du langage de modèle Poignées pour utiliser des expressions conditionnelles.
{ {{#if request.headers.app-context}} "context": "{{?request.headers.app-context}}", {{/if}} "customerId": "{{?request.parameters.customerId}}", "orderNumber": "OU812", "orderItems": [ { "itemCode": "7013-520", "quantity": 1 }, { "itemCode": "7013-590", "quantity": 1 } ] }Ici, une propriété
contextest incluse dans la réponse générée en utilisant la valeur de l'en-têteapp-context, si cette valeur est présente dans la demande. Le guidon inclut également un support intégré pour les boucles, if-then-else, etc.