Interfaces et services

Consommer les données du portail depuis un système d'information, un SIG ou un script.

Le SIT ANAT expose ses ressources par une interface de programmation et par les services cartographiques normalisés de l'OGC. Ce qu'une requête retourne dépend du compte qui la porte : les règles de diffusion s'appliquent aux services comme aux écrans du portail.

Interface de programmation

La racine de l'interface est https://anat-sit.maono-soft.com/api/v2/. Elle répond en JSON et se parcourt depuis un navigateur.

Points d'entrée de l'interface de programmation
Point d'entréeContenu
/api/v2/resourcesToutes les ressources, quel que soit leur type.
/api/v2/datasetsLes jeux de données, avec leur nom de couche et leur emprise.
/api/v2/mapsLes cartes et leur composition.
/api/v2/documentsLes documents joints.

Les listes se filtrent et se trient par paramètres de requête. Par exemple, les jeux de données d'une catégorie :

GET https://anat-sit.maono-soft.com/api/v2/datasets?filter{category.identifier}=eau&page_size=50

Référence complète et essais en ligne

La description normalisée de l'interface, au format OpenAPI, se lit à https://anat-sit.maono-soft.com/api/v2/schema/ : elle s'importe dans Postman, Insomnia ou un générateur de client. Deux pages permettent de la parcourir et d'essayer les appels depuis le navigateur.

Pages d'exploration de l'interface
PageUsage
SwaggerParcourir les points d'entrée et lancer des appels, connecté ou non.
RedocLire la référence en continu, avec les schémas de données.

La racine https://anat-sit.maono-soft.com/api/v2/ rappelle elle-même ces moyens d'authentification, sous les clés _documentation et _authentification.

S'authentifier

Deux moyens sont en service, tous deux rattachés à un compte du portail. Il n'existe pas de client d'interface distinct d'un compte : un versement automatique passe par un compte de service créé pour la structure, à qui le point focal accorde les habilitations voulues.

Authentification de base

Rien à préparer : l'identifiant et le mot de passe du compte, sur une connexion chiffrée. C'est le moyen le plus simple pour un script.

curl -u compte:motdepasse https://anat-sit.maono-soft.com/api/v2/resources

Jeton OAuth2

Il demande une préparation par l'ANAT. Le portail n'expose qu'une seule application OAuth2, celle qui relie GeoServer, et elle ne convient pas à un script : un appel à https://anat-sit.maono-soft.com/o/token/ sans application dédiée répond invalid_client. Pour un compte de service, l'ANAT crée une application OAuth2 confidentielle au mode « mot de passe du propriétaire de la ressource », puis vous remet son client_id et son client_secret. Le jeton s'obtient alors ainsi :

curl -X POST https://anat-sit.maono-soft.com/o/token/ \
    -d grant_type=password \
    -d username=<compte> -d password=<mot de passe> \
    -d client_id=<client_id> -d client_secret=<client_secret>

La réponse porte un access_token valable dix heures, un refresh_token et la portée openid read write groups. Le jeton se présente ensuite en en-tête sur l'interface de programmation, ou en paramètre access_token sur les services de GeoServer.

curl -H "Authorization: Bearer <access_token>" https://anat-sit.maono-soft.com/api/v2/resources

Sans authentification, une requête ne voit que les ressources ouvertes au public.

Publier depuis l'interface

La route de publication accepte un champ diffusion, dont les valeurs sont structure, administrations, partenaires et public. Trois règles la gouvernent.

  1. Le champ absent vaut administrations. Le niveau public n'est jamais ouvert implicitement.
  2. Un compte qui n'est pas habilité à ouvrir le niveau demandé reçoit un refus motivé, et la ressource reste confinée à sa structure.
  3. Une publication autorisée enregistre une décision au nom du compte qui l'a faite, notifie le point focal, et apparaît dans l'historique de la ressource.

Ces habilitations sont nominatives, portent une période, et ne sont accordées que si la structure a été déclarée autonome au cran correspondant. Le circuit complet est décrit sur la page À propos.

Services cartographiques OGC

Les couches sont servies par GeoServer sous les protocoles normalisés de l'Open Geospatial Consortium. Ces adresses se collent telles quelles dans QGIS, ArcGIS ou une bibliothèque cartographique.

WMS  https://anat-sit.maono-soft.com/geoserver/ows?service=WMS&version=1.3.0&request=GetCapabilities
WFS  https://anat-sit.maono-soft.com/geoserver/ows?service=WFS&version=2.0.0&request=GetCapabilities

Le nom d'une couche se lit sur sa fiche dans le catalogue, sous la forme espace:couche. Une extraction au format Shapefile s'obtient ainsi :

https://anat-sit.maono-soft.com/geoserver/ows?service=WFS&version=2.0.0&request=GetFeature
    &typeNames=espace:couche&outputFormat=SHAPE-ZIP

Les droits d'accès s'appliquent à ces services : une couche que votre compte ne voit pas dans le catalogue est refusée par GeoServer. Pour un accès authentifié, ajoutez le jeton OAuth2 en paramètre access_token ou en en-tête.

Catalogue de métadonnées

Les métadonnées sont moissonnables par le protocole CSW, à la norme ISO 19115. N'importe quel client CSW convient, dont l'extension MetaSearch de QGIS.

https://anat-sit.maono-soft.com/catalogue/csw?service=CSW&version=2.0.2&request=GetCapabilities

Ce qu'il faut savoir avant d'intégrer

  • Les données ne sont pas versionnées. Une mise à jour de couche remplace la précédente et prend effet aussitôt : gardez la date de dernière modification à côté de vos extractions.
  • La licence engage la réutilisation. Elle est portée par chaque ressource et vérifiée avant publication : lisez-la avant de rediffuser.
  • Les niveaux de diffusion peuvent changer. L'ANAT conserve le droit de retirer une publication ; une intégration doit gérer une ressource devenue inaccessible.