Gérer les charges utiles JSON en tant que chaînes dans la tâche des connecteurs HTTP

Dans ce tutoriel, vous allez apprendre à gérer les charges utiles JSON lorsque vous utilisez une tâche Connecteurs HTTP dans Application Integration.

Si vous traitez le payload de manière incorrecte, les API peuvent l'interpréter de manière erronée, ce qui entraîne des erreurs 400 Bad Request. Pour vous assurer que les API reçoivent et analysent correctement votre charge utile JSON, traitez-la comme une chaîne et définissez explicitement l'en-tête Content-Type sur application/json.

Avant de commencer

  • Vérifiez que vous pouvez accéder à Application Integration.
  • Sélectionnez votre projet Google Cloud et effectuez les tâches suivantes :

    • Attribuez les rôles suivants au compte de service que vous souhaitez utiliser pour créer la connexion :
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor
    • Activez les services suivants :
      • secretmanager.googleapis.com (API Secret Manager)
      • connectors.googleapis.com (API Connectors)

      Si vous n'avez pas activé ces services pour votre projet, la page Créer une connexion vous invite à les activer lorsque vous créez la connexion.

  • Ajoutez et configurez une tâche Connecteurs HTTP.
  • Ajoutez et configurez la tâche Data Transformer pour préparer la charge utile et les en-têtes JSON.

Gérer les charges utiles JSON en tant que chaînes

Pour gérer les charges utiles JSON contenant des caractères spéciaux lorsque vous utilisez une tâche Connecteurs HTTP, procédez comme suit :

Créez une variable de chaîne pour la charge utile JSON.

  1. Dans la console Google Cloud , accédez à la page Application Integration.

    Accéder à Application Integration

  2. Dans le menu de navigation, cliquez sur Intégrations.
  3. Sélectionnez une intégration existante ou créez-en une. Assurez-vous que votre intégration inclut les tâches Connecteurs HTTP et Data Transformer configurées, comme indiqué dans la section Avant de commencer.
  4. Dans l'éditeur d'intégration, cliquez sur Créer pour ouvrir la boîte de dialogue Créer une variable.
  5. Dans la boîte de dialogue Créer une variable :
    1. Saisissez les informations suivantes :
      1. Nom : saisissez un nom, par exemple jsonPayloadString.
      2. Type de données : sélectionnez Chaîne.
      3. Valeur par défaut :
        • Si la charge utile JSON est renseignée par une tâche précédente dans le flux d'intégration (par exemple, une autre tâche Transformer des données), laissez ce champ vide. La variable sera renseignée de manière dynamique en fonction du résultat des tâches précédentes de l'intégration.
        • Si la charge utile JSON n'est pas renseignée par une tâche précédente, vous devez fournir une charge utile JSON statique par défaut. Saisissez la structure JSON sous forme de chaîne unique dans ce champ.

          Voici deux exemples de saisie de chaînes JSON dans le champ Valeur par défaut :

          Sans caractères spéciaux : pour représenter le JSON {"name": "Developer", "key": "test"}, saisissez exactement { "name": "Developer", "key": "test" }.

          Avec des caractères spéciaux : lorsque votre fichier JSON contient des caractères spéciaux tels que le caractère de nouvelle ligne (\n), vous devez les échapper. Par exemple, pour représenter le JSON {"key": "value1\nvalue2"}, saisissez {"key": "value1\\nvalue2"} dans le champ.

    2. Cliquez sur Créer.
    Créez une variable de chaîne pour la charge utile JSON.
  6. Pour en savoir plus sur la création et l'utilisation de variables, consultez Variables.

Mapper la variable de chaîne au corps d'entrée du connecteur

Dans l'éditeur de transformateur de données, mappez la variable jsonPayloadString au champ connectorInputPayload.Body.

  1. Dans votre intégration, ajoutez une tâche Data Transformer.
  2. Ouvrez l'éditeur Data Transformer. Vous pouvez utiliser le mode Diagramme ou le mode Script.
  3. Pour mapper la variable :
    • Mode Diagramme : ajoutez jsonPayloadString comme entrée et mappez-le au champ de sortie connectorInputPayload.Body.
    • Mode script : écrivez du code Jsonnet pour attribuer la valeur connectorInputPayload.Body = vars.jsonPayloadString;.

Ajouter un en-tête Content-Type personnalisé

  1. Dans l'éditeur Data Transformer, ajoutez un mappage pour les en-têtes personnalisés au champ connectorInputPayload.Headers.
    • Mode Diagramme : ajoutez une entrée constante avec la valeur {"Content-Type": "application/json"} et mappez-la sur connectorInputPayload.Headers.
    • Mode script : ajoutez le Jsonnet suivant pour définir l'en-tête :
      connectorInputPayload.Headers = {
        "Content-Type": "application/json"
      };
              

Exécuter la tâche HTTP Connectors

Avant d'exécuter votre intégration, vérifiez que connectorInputPayload.Body est renseigné par la variable jsonPayloadString et que connectorInputPayload.Headers inclut l'en-tête Content-Type: application/json. Cette configuration garantit que la tâche Connecteurs HTTP envoie la charge utile JSON sous forme de chaîne avec le Content-Type approprié dans la tâche Transformateur de données.

Exécutez votre intégration pour tester la requête API. Si l'API renvoie une erreur 400 Bad Request, vérifiez à nouveau les mappages pour connectorInputPayload.Body et connectorInputPayload.Headers dans la tâche Transformateur de données.

Étapes suivantes

Essayez de créer des intégrations avec d'autres connecteurs. Pour obtenir la liste de tous les connecteurs compatibles, consultez la documentation de référence sur les connecteurs.