Requête Web
Bloc technique
Les blocs techniques permettent de créer des scénarios plus complexes et innovants.
Ils ont généralement aucun ou peu d'impact visuel, et se concentrent sur la logique de déroulement de votre scénario.
Fonctionnement
Le bloc Requête Web permet d'établir une communication entre un scénario VTS et un service web, grâce à des API Web :
- L'URL, les paramètres GET, les paramètres POST, et le timeout peuvent être configurés.
- L'API est appelée lorsque le bloc est déclenché durant un scénario, et l'exécution du graphe est mis en pause tant que le service web n'a pas répondu.
- La réponse de l'API est reçue sous la forme d'une variable. Celle-ci pourra ensuite être utilisée dans des blocs Variables et Conditions, de manière à créer des embranchements scénaristiques dépendant de la réponse du service web.
- La première sortie est déclenchée si la communication s'est bien passée.
- La deuxième sortie est déclenchée si la communication n'a pas pu être établie, ou lors d'un timeout.
Bien qu'utilisable sans les variables, l'intérêt de ce bloc réside donc en particulier dans l'envoi de paramètres variables, et dans l'exploitation de la réponse du service web, qui n'est possible qu'en utilisant les variables.
1. Le bloc Requête Web est un outil pour développeurs. Il nécessite des connaissances en programmation web pour être utilisé.
2. Virtual Training Suite ne fournit pas de service web auquel se connecter avec le bloc Requête Web. Ce bloc peut être utilisé uniquement si vous avez à votre disposition un service web pour lequel vous souhaitez établir une communication avec votre scénario VTS.
Exemples d'utilisations :
- Connecter votre module sur VTS Player à un LMS disposant d'API publiques
- Créer un module multi-joueurs avec synchronisation régulière des données (toutes les X secondes, entre chaque scène, etc.) de la partie sur un serveur web.
- Remonter des statistiques d'utilisation sur une plateforme web personnalisée.
- Etc.
Paramètres
Url
Permet de définir l'URL de l'API à appeler.
- Il est possible d'y insérer des variables, avec la syntaxe {variable}, mais ce n'est généralement pas utile car les paramètres GET et POST peuvent être configurés de manière spécifique juste en dessous.
- L'URL elle-même peut être une variable si votre situation le demande. Par exemple : {api_url}
Paramètres GET
Définissez ici la liste des paramètres GET à envoyer à votre API : le nom à gauche, la valeur à droite.
Le nom et la valeur peuvent être définis à base de variables. Par exemple, tel que le bloc est configuré dans l'image ci-dessus, la valeur des 3 derniers paramètres GET est définie grâce à des variables (la dernière valeur utilise d'ailleurs la variable _score, qui retourne le score global en cours).
Paramètres POST
Définissez ici la liste des paramètres POST à envoyer à votre API : le nom à gauche, la valeur à droite. Ils peuvent aussi être définis avec des variables.
Brut
on La liste des paramètres POST devient un seul champ, vous permettant d'insérer une unique valeur texte. Par exemple un XML complexe, contenant des valeur variables. Activez cette option uniquement si nécessaire. off Les paramètres POST sont définis par une liste de couples clé-valeur.
Timeout
Définissez ici le temps maximum que la requête web doit attendre avant de recevoir une réponse de la part du serveur web. Votre scénario sera donc mis en pause pour ce temps-là au maximum.
Si le temps est atteint, la 2ème sortie du bloc Requête Web sera déclenchée.
Résultat de la requête
Indiquez ici le nom de la variable dans laquelle le résultat texte de la requête doit être stocké.
Ce résultat pourra être utilisé dans des blocs Variables ou Conditions dans la suite de votre scénario.
Certaines fonctions peuvent être très pratiques pour exploiter le résultat, en particulier :
- fromJson(result) Permet de désérialiser le contenu de la variable en une structure JSON : dictionnaires, listes, flag, texte, entier, décimal. Ces 6 types de variables sont bien gérées par le système de variables de Virtual Training Suite. Toutes les fonctions les plus courantes pour les manipuler existent.
- regexMatch(result, regex) Pour vérifier que la réponse est valide selon l'expression régulière donnée en paramètre.
- extractText(result, regex, 0) Pour extraire une partie spécifique de la réponse.
- toInteger(result) Pour convertir la réponse (texte) en nombre entier.
- Etc.
- ${ child.title }