Vous pouvez retrouver l'ensemble des opérations accessibles grâce à l'API PRODIGE dans la documentation associée à votre plateforme. L'URL pour y accéder est la suivante : {url-de-votre-catalogue}/api/doc
Cette documentation est également disponible via le catalogue test d'Écolab :
https://catalogue-test.prodige-ecolab.fr/api/doc/
Nous faisons ici un focus sur les principales opérations pour :
L'API permet d'accéder aux ressources du catalogue à travers des opérations de lecture / écriture selon les droits de l'utilisateur authentifié.
L'accès à la ressource est soumis à authentification. Le compte (login et mot de passe) est identique à celui fourni pour l'accès à la plateforme. Les règles de droits sont également identiques à celles de la plateforme web.
L'authentification se fait au travers de l'opération /api/login selon le protocole basicAuth.
L'ensemble des opérations doit ensuite être réalisé avec la transmission du cookie PHPSESSID récupéré dans les entêtes de réponse de l'opération /api/login.
Deux types d'opérations existent :
Ces opérations sont basées sur le format geojson.
La récupération d'une ressource est réalisée par l'opération GET /api/data/{uuid-de-la-ressource}
Les données sont fournies au format geojson
Filtres et pagination
Il est possible de limiter le nombre de features récupérées en passant des paramètres de filtres ou de paginatio,.
Exemple 1
?limit=5 permet ici de limiter le nombre de résultats à 5.
Exemple 2
?_where=(ici-la-requête) permet de filtrer les données sous certaines conditions.
Voici quelques opérateurs supportés (la liste complète est disponible sur la page de documentation de l'API) :
Opérateur | Syntaxe | Exemple | Description |
---|---|---|---|
And | and | ?_where=and(eq(...),eq(...)) | Deux opérations "eq", séparées par des virgules, sont comprises dans le and |
Equal | eq | ?_where=eq(cp,85800) | La syntaxe est la suivante : eq(nom-du-champ,occurrence). Ici, on cherche 85800 dans le champ "cp". |
Not equal to | neq | ?_where=neq(cp,85800) | Même principe que l'opération précédente, mais le cp ne doit cette fois pas être égal à 85800 |
In | in | ?_where=in(cp,85800,85160) | La syntaxe doit être la suivante : in(nom-du-champ,occurrence1,occurrence2,...). On cherche donc la liste d'occurrences (85800, 85160) dans le champ "cp". |
Not in | nin | ?_where=nin(cp,85800,85160) | Même principe que l'opération précédente, mais le cp ne doit pas correspondre aux occurrences demandées |
L'exemple ci-dessus présente deux opérations "eq", liées par un "and". Les données remontées par l'API doivent donc correspondre à :
La réponse est la suivante :
L'ajout de nouvelles occurrences est réalisé via l'opération POST /api/data/{uuid-de-la-ressource}
Le contenu des données ajoutées est envoyé dans la payload au format geojson.
Dans ce cas, il ne faut pas renseigner d'identifiant gid, qui sera autoincrémenté.
Exemple :
La modification d'une occurrence existante est réalisée par l'opération PATCH /api/data/{uuid-de-votre-ressource}
La clé pour la mise à jour des données est ici nécessaire, au travers d'un champ d'identifiant unique (gid).
La suppression d'une occurrence existante est réalisée par l'opération DELETE /api/data/{uuid-de-votre-ressource}
Ici aussi, la clé à utiliser les d'identifiant gid.