Transformer vos données
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ères toto dans tous les autres cas.
Fonctions de 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. Note InformationsRemarque : 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 |
Fonctions de 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 :
|
Aucun(e) | Expression : ${"Star-wars API"."Get 2 planets"."response"."body"} Résultat :
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). Note InformationsRemarque : 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 les éléments 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 les éléments 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é. | Format d'entrée : TIMESTAMP ou ISO_8601 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 |