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.
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.
Configuration
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}
Ajouter des headers
Permet de spécifier des en-tête de la requête, comme une clé d'authentification par exemple.
Paramètres
- GET : définissez une liste de paramètres GET à envoyer à l'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).
- POST : définissez une liste de paramètres POST à envoyer à l'API. Fonctionnement similaire aux paramètres GET.
- POST Raw : définissez des données brutes à envoyer à l'API (un JSON, un XML, ou autre). Dans le mode POST Raw, l'option "Détection des variables" devient disponible.
Détection des variables
Disponible uniquement dans le cas de paramètres en mode POST Raw.
Permet de spécifier via quelles délimiteurs les variables doivent être détectées dans les données brutes. Les accolades sont utilisées par défaut partout dans VTS, mais celles-ci sont aussi souvent présentes dans ces formats de données spécifiques comme le JSON, ce qui créerait des erreurs. Il est alors possible de spécifier quelques autres délimiteurs à utiliser dans les données brutes, à choisir selon leur contenu pour qu'il n'y ait pas de conflit entre les données et les délimiteurs des variables.
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.
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.
Attendre la fin de la requête
on Le bloc attend que la requête web retourne une réponse avant de passer à la suite du graphe. off Le bloc sort immédiatement vers la suite du graphe dès que la requête a été lancée, sans attendre de réponse.
- ${ child.title }