Transformer vos données - Cloud

Guide d'utilisation de Talend Cloud API Tester

Version
Cloud
Language
Français (France)
Product
Talend Cloud
Module
Talend API Tester
Content
Création et développement > Test d'API

Talend Cloud API Tester vous permet de manipuler des données via des fonctions.

Les fonctions peuvent créer de nouvelles données ou transformer des données existantes. Les fonctions qui transforment des données s'appliquent sur la valeur de l'expression qu'elles finissent.

Exemples d'utilisation

Si vous souhaitez récupérer les dix premiers noms des planètes de votre API Star Wars, vous pouvez utiliser l'expression : ${"Star-wars API"."Get 10 planet names"."response"."body".jsonPath("$.results[:10].name")}. La méthode jsonPath parse le résultat de l'expression ${"Star-wars API"."Get 10 planet names"."response"."body"}.

Si vous souhaitez récupérer les logs de la semaine passée, vous pouvez créer une URL avec des expressions dans les paramètres de requête : https://myapi.com/logs?from=${timestamp().addTime("WEEK", "-1")}&to=${timestamp()}.

Si vous souhaitez générer la date actuelle au format ISO, vous pouvez utiliser l'expression ${timestamp().formatDate('TIMESTAMP', 'ISO_8601')}.

Constantes

Lorsque vous écrivez une expression comme ${"toto"}, l'expression est évaluée comme :

  • La valeur de la variable de l'environnement courant toto s'il y en a une.
  • La requête/le scénario/le service/le projet toto au niveau de la racine de votre dépôt si aucune variable d'environnement ne correspond.
  • La chaîne de caractère toto dans tous les autres cas.

Création de données

Fonction Description Arguments Exemple
timestamp

Retourne le nombre de millisecondes du 1er Janvier 1970, 00:00:00 GMT, à la date de l'évaluation.

Aucun

Expression : ${timestamp()}

Résultat possible : 1505136142950

uuid

Retourne un UUID.

Aucun

Expression : ${uuid()}

Résultat possible : f5fafd92-2298-4e72-97c9-df4dabaf27d2

random Retourne un numéro aléatoire dans la plage 0 <= number < max.

Maximum : la valeur par défaut est de 1000000000

Expression : ${random(50)}

Résultat possible : 42

randomString Retourne une chaîne de caractères aléatoire avec une longueur spécifique.
Remarque : Cette fonction n'est pas fiable dans le cadre de génération de mot de passe et ne doit pas être utilisée à cette fin.

Length (Longueur) : nombre de caractères dans la chaîne de caractères. La valeur par défaut est de 10.

[a-z] : cochez cette case pour inclure des minuscules dans la chaîne de caractères.

[a-z] : cochez cette case pour inclure des majuscules dans la chaîne de caractères.

[0-9] : cochez cette case pour inclure des nombres.

Expression : ${randomString(10, true, true, true)}

Résultat possible : 4ptUKhHYMr

Transformation de données

Fonction Description Arguments Exemple
base64

Encode en Base 64.

Aucun

Expression : ${"username:password".base64()}

Résultat : dXNlcm5hbWU6cGFzc3dvcmQ=

lower

Convertit tous les caractères en minuscules à l'aide des règles de la locale par défaut.

Aucun

Expression : ${"AbC".lower()}

Résultat : abc

length

Calcule la longueur de son entrée :

  • le nombre de caractères si l'entrée est une chaîne de caractères,
  • le nombre d'éléments dans un tableau JSON,
  • le nombre de clés dans un object JSON.
Aucun

Expression : ${"Star-wars API"."Get 2 planets"."response"."body"}

Résultat :
{
                  "count":61,
                  "results": [
                  {"name":"Alderaan" },
                  {"name":"Naboo" },
                  {"name":"Hoth" }
                  ]
                  }

Expression : ${"Star-wars API"."Get 2 planets"."response"."body".length()}

Résultat : 2 Expression : ${"Star-wars API"."Get 2 planets"."response"."body"."results".length()}

Résultat : 3

Expression : ${"Star-wars API"."Get 2 planets"."response"."body"."results"."0"."name".length()}

Résultat : 8

substring Retourne une entrée tronquée.

Start (Début) : position du premier caractère à extraire (0 par défaut).

End (Fin) : position du premier caractère à omettre (fin de l'entrée par défaut).

Remarque : l'index du premier caractère est 0.

Expression : ${"0123456".substring(1)}

Résultat : 123456

Expression : ${"0123456".substring(1, 2)}

Résultat : 1

Expression : ${"0123456".substring(0, 4)} Résultat : 0123

jsonPath Retourne le(s) élément(s) extraits de l'entrée JSON avec le selector du chemin d'accès JSON donné.

Selector : le sélecteur de chemin JSON qui pointe vers la partie du JSON à extraire de l'entrée.

Expression : ${"{\"titi\": \"toto\"}".jsonPath("$.titi")}

Résultat : toto

sPath Retourne le(s) élément(s) extraits de l'entrée XML avec le selector du chemin XPath donné. Selector : le sélecteur de chemin XPath qui pointe vers la partie du XML à extraire de l'entrée.

Expression : ${"<title lang="en" />".xPath("//title/@lang")}

Résultat : [lang="en"]

hmac

Crée un code d'authentification de message basé sur du hachage.

Cipher : fonction de hachage (SHA1, SHA224, SHA256, SHA384 ou SHA512).

Secret

 : la clé secrète.

Output (Sortie) : type de sortie (Base64 ou Hex).

Expression : ${"test".hmac("sha256", "secret", "Base64")}

Résultat : Aymga2LNFrM+tnkr6MYLFY2Jou46h2/Omogeu0iMCRQ=

Expression : ${"test".hmac("sha1", "secret", "Hex")}

Résultat : 1aa349585ed7ecbd3b9c486a30067e395ca4b356

sha Hache son entrée.

Cipher : fonction de hachage (SHA1, SHA224, SHA256, SHA384 ou SHA512).

Output (Sortie) : type de sortie (Base64 ou Hex).

Expression : ${"toto".sha("SHA224", "Base64")}

Résultat : IcBD7s1+hUI6ctrjwGKitb+g5rNc4/54jJtXpg==

Expression : ${"toto".sha("SHA1", "Hex")}

Résultat : 0b9c2625dc21ef05f6ad4ddf47c5f203837aa32c

md5

Calcule le Hash MD5 de son entrée.

Aucun

Expression : ${"toto".md5()}

Résultat : f71dbe52628a3f83a77ab494817525c6

upper

Convertit tous les caractères en majuscules à l'aide des règles de la locale par défaut.

Aucun

Expression : ${"aBc".upper()}

Résultat : ABC

string Entoure de guillemets son entrée.

Quotes (Guillemets) : le caractère qui doit être utilisé pour mettre entre guillemets l'entrée (' ou ", " est utilisé par défaut).

Expression : ${"toto".string()}

Résultat : "toto"

Expression : ${"toto".string("\"")}

Résultat : "toto"

Expression : ${"toto".string("'")}

Résultat : 'toto'

math Effectue l'opération sélectionnée sur la valeur d'entrée.

Operation (Opération) : ADD, SUBTRACT, MULTIPLY ou DIVIDE

Value (Valeur) : nombre

Expression : ${"7".math("MULTIPLY", "6")}

Résultat : 42

Expression : ${"3.14".math("ADD", "0.00159265")}

Résultat : 3.14159265

Expression : ${"100".math("DIVIDE", "-5")}

Résultat : -20

addTime Ajoute ou supprime un nombre d'unités de temps d'une date dans l'unité sélectionnée.

Time unit (Unité de temps) : YEAR, MONTH, WEEK, DAY, HOUR, MINUTE ou SECOND

Value (Valeur) : integer (vous pouvez utiliser un nombre négatif afin de supprimer une unité de temps)

Expression : ${timestamp().addTime("YEAR", "1")}

Résultat possible : 1620292896490

Expression : ${timestamp().addTime("WEEK", "-2")}

Résultat possible : 1587547696437

formatDate Convertit une date au format sélectionné.

Input format (Format d'entrée) : TIMESTAMP ou ISO_8601

Output format (Format de sortie) : TIMESTAMP ou ISO_8601

Expression : ${timestamp().formatDate("TIMESTAMP", "ISO_8601")}

Résultat possible : 2020-05-06T13:43:22.248Z

Expression : ${"2020-04-06T13:44:51.435Z".formatDate("ISO_8601", "TIMESTAMP")}

Résultat : 1586180691435