DataPower API Gateway uniquement

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

Tableau 1. Prise en charge de la passerelle pour la stratégie Modèle de message
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

  1. Dans le panneau de navigation, cliquez sur Icône de développement dans le panneau de navigation Développement, puis sélectionnez l'onglet API.
    La page Développement s'ouvre.
  2. Cliquez sur le titre de la définition d'API à utiliser.
  3. Sélectionnez l'onglet Passerelle , puis cliquez sur Stratégies dans le panneau de navigation.
    Pour plus d'informations sur l'utilisation de l'éditeur d'assemblage pour une API, voir Editeur d'assemblage.
  4. Recherchez la règle Modèle de message dans la palette et faites-la glisser sur votre canevas.
  5. Spécifiez les propriétés suivantes.
    Tableau 2. Propriétés de la stratégie de modèle de message
    Libellé de la propriété Obligatoire Descriptif Type de données
    Titre Oui Titre de la stratégie.

    La valeur par défaut est message-template.

    chaîne
    Description Non Description de la stratégie. chaîne
    Modèle Oui Contenu texte du modèle exécuté lors de l'exécution

    Le contenu peut être n'importe quelle forme de données structurées, telles que JSON ou XML, ou du texte en clair. Voir la section Exemples pour des exemples de modèles de message.

    chaîne

    Variable d'objet réponse

    Non Nom d'une variable qui sera utilisée pour stocker les données de réponse de la demande. Par défaut, message est utilisé. Cette propriété permet de spécifier un autre emplacement pour stocker la réponse au message. Cette variable peut ensuite être référencée dans d'autres actions, telles que Map.
    Remarque: si vous souhaitez que la réponse soit enregistrée dans message, laissez la propriété Variable d'objet de réponse vide et ne fournissez pas la valeur message.
    chaîne
    Type de contenu Oui Détermine la valeur content-type qui est appliquée au corps du message. Par défaut, il s'agit du type produces de l'API, mais il n'est pas nécessaire qu'il s'agit de cette valeur. Une API peut produire différents types de contenu de réponse pour différentes opérations ou codes de statut.

    Vous avez le choix entre les options suivantes :

    • application/json
    • text/plain
    chaîne
  6. Indiquez une version pour la stratégie en cliquant sur l'icône Source OpenAPI Icône Sourceet en remplissant la section version du fichier YAML de la stratégie. Par exemple :
    execute:
      - message-template:
          version: 2.0.0
          title: message
    ...
    Vous devez spécifier une version pour la règle compatible avec la passerelle que vous utilisez. Lorsque l'API est publiée, si la version est incompatible avec la passerelle, une erreur de validation indiquant les versions disponibles est émise.
  7. Cliquez sur Sauvegarder.

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 customerId est 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é customerId qui 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é context est incluse dans la réponse générée en utilisant la valeur de l'en-tête app-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.

Remarque: les API factices ne sont pas limitées à la production d'une seule réponse, ni empêchées de combiner des réponses factices avec des appels de back end réels. Par exemple, vous pouvez créer une logique d'assemblage qui renvoie une réponse à partir d'une stratégie Invoke , ainsi que plusieurs réponses fictives.

Etape suivante

Vous pouvez maintenant utiliser l'onglet Test pour tester votre réponse d'API factice.