Accès à des référentiels externe
w.c.s. peut utiliser des référentiels externes pour par exemple alimenter la liste des choix possibles dans un champ; pour ce faire w.c.s. utilise le format JSON. L’adresse appelée doit répondre aux exigences suivantes :
retourner les données, triées, dans un attribut nommé data ;
présenter chaque élément des données dans un dictionnaire contenant deux éléments, id contenant un identifiant unique et text contenant le texte de la valeur ;
Exemple JSON
GET https://www.example.net/data/fruits { "data": [ { "text": "Poire", "id": "1" }, { "text": "Pomme", "id": "2" } ] }
Quand il y a besoin de filtrer dynamiquement les données (autocomplétion, recherche dans un champ liste), l’adresse appellée doit respecter les exigences supplémentaires suivantes :
accepter un paramètre, usuellement id, permettant de retourner un seul élément en le désignant par son identifiant ;
accepter un paramètre, usuellement q, permettant de filtrer les éléments en fonction de leur contenu.
Exemple JSON d’un élément unique désigné par son identifiant
GET https://www.example.net/data/fruits?id=1 { "data": [ { "text": "Poire", "id": "1" } ] }
Exemple JSON filtré par contenu
GET https://www.example.net/data/fruits?q=pom { "data": [ { "text": "Pomme", "id": "2" } ] }
En plus des clés id et text qui sont obligatoires, les différents éléments peuvent contenir des clés supplémentaires, pour des informations annexes. Celles-ci seront alors accessibles dans les variables de contexte du formulaire.
Exemple JSON enrichi
GET https://www.example.net/data/fruits { "data": [ { "text": "Poire", "id": "1", "saison": "automne", "prix": "1" }, { "text": "Pomme", "id": "2", "saison": "automne", "prix": "2" } ] }