Documentation en ligne

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

$ curl 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

$ curl https://www.example.net/data/fruits?id=1
{
    "data": [
        {
            "text": "Poire",
            "id": "1"
        }
    ]
}

Exemple JSON filtré par contenu

$ curl 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

$ curl https://www.example.net/data/fruits
{
    "data": [
        {
            "text": "Poire",
            "id": "1",
            "saison": "automne",
            "prix": "1"
        },
        {
            "text": "Pomme",
            "id": "2",
            "saison": "automne",
            "prix": "2"
        }
    ]
}

Dernière mise à jour le 26 janvier 2020 11:25 — Éditer