OPenIG est un catalogue ouvert à tous : https://ckan.openig.org/dataset
Les consultations des données ouvertes, géographiques et intelligentes sont libres sur OPenIG. Vous pouvez parcourir le catalogue, rechercher des jeux de données et télécharger des ressources dans différents format de fichier.
Ceci ne concerne pas les données diffusées sur accès restreint, pour lesquelles les producteurs ont volontairement limité leur téléchargement à certains utilisateurs. Toutefois ces jeux de données apparaissent au catalogue général pour porter à connaissance des publics l’existence de ces données. Pour les consulter il faut en faire la demande directement au producteur.
Pour de meilleurs résultats, OPenIG permet de filtrer les données, d’effectuer des recherches par thématique, selon la fréquence de mise à jour, par format ou uniquement les jeux de données associés à une organisation.
L’ensemble de ces filtres peuvent être cumulés pour affiner les résultats avec un moteur de recherche “textuel”.
Il n’y a pas d’inscription préalable pour accéder aux jeux de données et aux ressources diffusés en Open Data.
Dans le respect des conditions générales d’utilisation d’OPenIG, chaque jeux de données est publié avec une licence ( licences ouvertes, licence odbl, etc…), choisie par le producteur de la donnée, dans le but de définir les conditions de leur réutilisation.
Si vous recherchez un jeu de donnée qui ne figure pas au catalogue d’OPenIG, vous pouvez nous solliciter à l’adresse contact@openig.org. Toute demande sera étudiée et une réponse vous sera apportée. Nous relayerons le cas échéant votre demande à la collectivité ou à l’organisme concerné.
S’il n’est pas nécessaire de s’inscrire sur la plateforme pour consulter le catalogue et télécharger des données ouvertes, le fait de s’enregistrer sur OPenIG permet de disposer des fonctionnalités complémentaires par rapport à la consultation sans inscription.
Toute personne, morale ou physique, publique ou privée, peut s’inscrire sur OPenIG et ainsi contribuer à l’ouverture et la mise en commun des données publiques ou privées, en publiant des jeux de données, des textes, des ressources et des commentaires.
Le nom d’utilisateur doit contenir uniquement des caractères alphanumériques en minuscules (ascii) et ces symboles : -_
De nombreuses fonctionnalités participatives sont proposées :
OPenIG propose un datastore, c’est à dire un entrepôt de données qui offre des services dits « intelligents » sur les données tabulaires aux formats CSV, XLSX, XLS, GeoJSON & JSON.
La publication des données sur OPenIG, dans un format ouvert et interprétable par une machine, permet leur indexation dans le datastore afin notamment de proposer des aperçus, de les filtrer par champs et de les parcourir sans utiliser de tableur dédiés.
Le format CSV est le format pivot à privilégier pour transformer vos données tabulaires en données semi-structurées dites « intelligentes » afin que le datastore génère des datavisualisations simples sous forme de grille, de graphe ou de carte.
Des données intelligentes permettent également d’en automatiser l’accès par API ( Application Programming Interface) : L’accessibilité des données par interface de programmation est une condition nécessaire pour massifier et industrialiser les usages qui peuvent être fait de ces dernières. Les données indexées dans le datastore sont ensuite « requetables » directement à travers l’API à travers une série de fonctionnalités puissantes (voir la présentation de l’API CKan).
Vos jeux de données doivent être préparés pour être proprement indexés dans le datastore :
Pour éviter les erreurs de type, il est préférable de les corriger avant d’indexer le jeu de donnée dans OPenIG ou bien de transformer la valeur des cellules en cellules au format TEXTE. Cela n’est pas satisfaisant, mais ça fonctionne.
Attention avec Excel :
Une carte peut automatiquement être générée à partir de vos données tabulaires geolocalisées. Pour cela, il faut renseigner les coordonnées géographiques soit avec un champ GeoJSON soit avec deux colonnes distinctes : « latitude » et « longitude ». Attention, la projection utilisée est le WGS84 (EPSG : 4326).
L’option « Marqueurs de regroupement » vous permet de « fusionner » visuellement les données proches.
Un graphique peut également être généré en sélectionnant les colonnes à assigner aux axes ainsi que le type de graphique parmis la liste disponible. Il est possible de combiner plusieurs « séries » au sein d’un même graphique.
Pour accéder aux flux OGC (Web Map Service et Web Feature Service) des données publiées sur OPenIG, il existe plusieurs façons selon le type de service :
1. Flux Mapserver
Lorsqu’on se situe sur la fiche d’un jeu de données, il suffit de cliquer soit directement sur la ressource soit sur l’oeil.
Il faut ensuite sélectionner « API Géo ».
Si le bouton « API Géo » ou l’aperçu cartographique n’apparaît pas, cela peut provenir du fait que la ressource géographique déposée n’a pas été reconnue comme telle. Cela est souvent dû au format choisi lors de la publication de la ressource. Attention, pour un Shapefile zippé il faut choisir le format « ESRI Shapefile (Fichier ZIP) » » et non pas « ZIP ».
Une fois que vous avez cliqué, un menu contextuel apparait pour vous donner toutes les informations que vous souhaitez.
Pour une utilisation dans QGIS, il suffit d’ajouter une nouvelle connexion WMS ou WFS en collant l’URL suivante :
« https://mapserver.openig.org/maps/ » + l’identifiant de l’organisation
L’identifiant d’une organisation peut être facilement récupérer :
Exemple 1 : departement-du-gard -> https://mapserver.openig.org/maps/departement-du-gard
Example 2 : departement-des-pyrenees-orientales -> https://mapserver.openig.org/maps/departement-des-pyrenees-orientales
2. Flux Mapcache
Réservés aux adhérents, ce flux permet d’accéder aux orthophotographies et certains fonds IGN. Cela nécessite d’avoir un compte sur openig.org pour les consommer.
Depuis votre SIG il faut renseigner l’adresse suivante https://mapserver.openig.org/mapcache/ ainsi que vos identifiants et mot de passe utilisés pour vous connecter à https://www.openig.org/.
Les couches sont visibles à partir de l’échelle 1:250’000.
Le tuilage des couches n’est pas pré-calculé ; il est calculé à l’affichage. C’est pourquoi on peut rencontrer des lenteurs lors des premières utilisations. Les performances s’amélioreront progressivement à l’usage.
Liste des couches disponibles :
En plus de cette documentation, des tutoriels vidéos existent sur le site internet d’OPenIG (service accessible uniquement aux adhérents) : https://www.openig.org/flux
Les données publiées sur l'IDG d'OPenIG, raster ou vecteur, peuvent être extraites sur votre territoire de compétence.
Pour chaque donnée vecteur visualisable, un bouton “filtre” à droite de la donnée vous permet d'extraite cette ressource.
Il est possible de l'extraire soit sur une commune soit sur le territoire de compétence de l'organisme auquel vous êtes rattaché.
Vous avez la possibilité de choisir :
Une fois cliqué sur “Extraire”, vous allez être redirigé vers votre console d'extraction qui répertorie les extractions déjà réalisées et celles en cours. Une fois l'extraction terminée, vous allez recevoir un mail pour télécharger votre donnée qui sera disponible pendant 15 jours.
Pour les rasters volumineux, un extracteur spécifique est disponible uniquement lorsque les données sont publiées en service.
Il permet d'optimiser les performances en effectuant une requête sur le territoire demandé : il sélectionne les tuiles et crée un lien dur vers le répertoire sFTP de l'utilisateur (un compte OPenIG = 1 espace SFTP dédié). Cela a l'avantage de ne pas dupliquer physiquement la donnée.
Il est possible de faire une sélection de l'étendue de l'extraction soit avec le code INSEE de une ou plusieurs communes (à séparer par une virgule) soit en sélectionnant un territoire de compétence.
Une fois le traitement réalisé, un mail sera envoyé à l'adresse associée au compte utilisateur OPenIG faisant la demande, informant de la disponibilité de la donnée. Pour récupérer la donnée, il faut se connecter à son espace sFTP OPenIG avec vos identifiants OPenIG (via un logiciel client comme FileZilla par exemple) et rentrer l'adresse suivante : sftp://sftp.openig.org:8322. Les dalles extraites se trouveront dans le répertoire extract.
Ce guide est destiné aux producteurs de données, déjà inscrit en tant qu’Utilisateurs et souhaitant contribuer à l’enrichissement des publications sur la plateforme (voir la documentation sur les Utilisateurs).
Toute personne, morale ou physique, publique ou privée, producteur de données publiques ou privées peut les publier sur OPenIG, sous reserve d’accepter les conditions d’utilisation et de respecter la réglementation sur les données à caractères personnelles.
Les organisations sont le plus souvent des personnes morales (autorités administratives, associations, entreprises) ou également des groupes informels.
La création d’une nouvelle organisation peut-être effectuée soit au moment de votre inscription comme utilisateur d’OPenIG, soit après la validation de votre profil Utilisateur par les Administrateurs d’OPenIG. Les demandes de statut de Contributeur ou de Référent sont soumises à la validation des Administrateurs. Il faut donc patienter un peu !
Par défaut, un Utilisateur qui s’inscrit avec un email personnel (gmail, ymail, hotmail,…) et dont le nom de domaine ne peut correspondre à l’organisation pour laquelle il demande de contribuer, ne peut se rattacher, contribuer ou devenir référent d’une Organisation.
Les Administrateurs de la Plateforme se réservent la possibilité de révoquer une inscription, une organisation, un statut de Contributeur ou de Référent, sans avis préalable.
Un Contributeur dispose des fonctionnalités suivantes :
Un Référent des données de l’Organisation, à laquelle il appartient, dispose des fonctionnalités suivantes :
Toute demande de création d’une organisation est soumise à l’administrateur du site pour validation.
La dénomination sociale est obligatoire. Concernant la description, elle est facultative mais fortement conseillée, d’une part pour permettre de qualifier l’Organisation et sa démarche en matière d’ouverture des données publiques et géographiques et d’autre part pour permettre l’implémentation automatique d’une page web spécifique à propos de l’organisation.
Pour éditer la page de son organisation, le Contributeur clique sur l’onglet ORGANISATIONS dans son espace d’administration.
La première fois que le contributeur édite la page de son organisation, il lui sera demandé de définir le territoire de compétence de l’organisation. La création de ce territoire de compétences permet de bénéficier de fonctionnalités spatiales supplémentaires dans OPenIG. Cette demande est traitée par un administrateur de la plateforme.
La publication se fait en deux étapes successives :
Tout d’abord on renseigne les métadonnées servant à définir ou décrire le jeu de données qui sera publié, puis on ajoute des jeux de données brutes ou des ressources complémentaires.
1. Métadonnées simplifiées
De nombreux mots-clés sont déjà répertoriés dans la base. Ils apparaissent dans une liste déroulante lorsque vous saisissez les premières lettres du mot. Mieux vaut choisir un mot clé existant, plutot que d’en choisir un nouveau afin de permettre de relier votre jeu de donnée à d’autres jeux similaires inscrits au catalogue d’OPenIG.
Les métadonnées obligatoires sont les suivantes :
2. Métadonnées INSPIRE
Pour pouvoir compléter les métadonnées INSPIRE, il faut sélectionner le jeu de données et choisir « Editer la fiche de métadonnées INSPIRE ».
Tous les champs à compléter pour respecter la norme INSPIRE seront regroupés dans des rubriques : Auteurs et contacts pour la fiche de métadonnées; description des données; contacts pour la base de données; références géographiques et qualité des données; conditions légales d’accès et d’usage; ressources associées.
Il existe quatre manières différentes d’ajouter un jeu de données :
1. Téléverser manuellement un fichier depuis votre poste local :
A l’aide du bouton Parcourir, vous pouvez déposer le fichier qui s’ajoute dans l’entrepôt de données d’OPenIG.
Le Titre de votre fichier est automatiquement recopié, mais il est possible de modifier manuellement le nommage de ce jeu de donnée. Le format du fichier est automatiquement reconnu par IDGO mais attention :
Si vous publiez un Shapefile zippé, il faut choisir le format « ESRI Shapefile (Fichier ZIP) » et non pas « ZIP ».
Il faut préciser si le jeu de donnée est disponible en tant que Données brutes ou si c’est une documentation associée au jeu de données pour permettre aux visiteurs d’OPenIG d’avoir des informations complémentaires (plaquettes de communication, affiches, photographie, site internet….).
2. Télécharger un jeu de donnée depuis une URL de téléchargement :
Dans ce cas, IDGO va télécharger la ressource pour l’ajouter dans l’entrepôt de données.
Ce mode de publication permet de synchroniser la ressource distante, selon une périodicité régulière à indiquer :
Par exemple, un fichier transport.zip peut-être synchronisé sur OPenIG directement grace à son URL de téléchargement.
Quelques précautions à prendre pour que la synchronisation s’active correctement :
En cas d’erreur, les administrateurs d’OPenIG se chargeront de vous indiquer que la synchronisation ne fonctionne pas ou plus.
3. Référencer une URL :
Dans ce cas, la ressource n’est pas téléchargée dans OPenIG et vous indiquez précisement l’adresse URL de téléchargement de la donnée qui reste hebergée chez son producteur. Cette donnée apparait au catalogue d’OPenIG mais elle n’est pas hébergée dans son entrepot.
4. Dépot FTP :
Il faut se connecter au sFTP avec son logiciel (ex: FileZilla, voir photo ci-dessous) à l’adresse donnée et avec ses identifiants OPenIG.
Dans FileZilla, ajouter un site dans « Gestionnaire de site » avec les paramètres suivants :
- Protocole : sFTP
- Hôte : sftp.openig.org
- Port : 8322
- Identifiant : vos identifiants OPenIG
Les fichiers qui se trouvent sur le compte sFTP apparaîtront dans la liste déroulante. Ce mode de publication permet de synchroniser la ressource, selon une périodicité régulière à indiquer.
Il peut arriver que la connexion au serveur FTP ne fonctionne pas lorsque le Proxy de votre organisation bloque l’accès au compte FTP; Veuillez pour cela tester la connexion à partir d’un autre point d’accès internet sans Proxy (depuis un smartphone ou une connexion internet personnelle).
Pour créer un style pour un jeu de donnée, il faut le sélectionner et « éditer les ressources associées ».
Il faut ensuite sélectionner la ressource à styliser du jeu de données et cliquer sur « editer ».
Puis cliquer sur « éditer la ressource géographique » lorsqu’on est sur la page de la ressource.
Enfin il faudra choisir l’onglet « Styles » à droite de « Configuration générale ».
Créer un style manuellement
Manuellement et directement dans l’interface, il est possible de donner un nom pour le style et la classe ainsi que de créer :
A noter que l’utilisateur a, pour tous les styles importés ou créés dans cette interface, la possibilité de les exporter directement en SLD.
Créer un style avec un SLD
Il est possible d’importer un SLD créé au préalable pour la ressource. Il suffit de cliquer sur « Importer un SLD » en haut à droite de la fenêtre de style et de coller le fichier SLD.
Enfin enregistrez votre style.
Les données publiées peuvent être mises à jour après leur publication, que la modification porte sur un jeu données dans son ensemble, ou sur l’une des ressources qu’il contient (Données brutes ou ressources associées).
L’actualisation d’une ressource existante permet d’en mettre à jour le contenu sans changer l’emplacement qui lui est assigné, c’est-à-dire son lien hypertexte (aussi appelé URL). Le fait d’actualiser une ressource (plutôt que de la supprimer et d’en créer ensuite une nouvelle) permet de conserver l’historique des téléchargements de cette ressource. Cela évite aussi de créer des liens rompus sur Internet, qui meneront à une erreur HTTP 404, vu que la page web n’existera plus et sera introuvable par le serveur.
Aller sur le site https://idgo.openig.org et rechercher vos jeux de données.
Il est possible de supprimer un ensemble de données (Dataset) comprenant les metadonnées; ou seulement les ressources et fichiers brutes associés à un ensemble de données. Pour cela, il faut sélectionner l’ensemble de données que vous souhaitez supprimer.
Attention, cette action est irréversible et supprimera définitivement le jeu de données ainsi que toutes les ressources qui lui sont attachées.
La fonctionnalité « réutilisation » (Trouver des données -> Réutilisation) permet d’indexer les applications/projets existants et réutilisants des données issues du catalogue d’OPenIG. Vous pouvez visualiser celles existantes sur cette page.
Lorsqu’une donnée est réutilisée, nous vous invitions à créer une « réutilisation » afin de valoriser vos projets et/ou vos données . Pour en créer une, il vous suffit de cliquer sur « Ajouter une réutilisation » et de remplir le formulaire.
La réutilisation sera aussi visible sur la page du jeu de données :
OPenIG et Etalab ont travaillé ensemble afin de permettre aux contributeurs d’OPenIG de faire remonter automatiquement leurs catalogues de données vers la plateforme nationale https://www.data.gouv.fr/fr/. Cette mécanique est aussi appelée « moissonneur » ou « passerelle ».
La procédure est relativemment simple. Il suffit de la mettre en place une fois pour que le catalogue de données d’OPenIG concerné soit ensuite synchronisé quotidiennement sur DataGouv.
Chaque contributeur et organisation reste souverain pour mettre en place ou non une synchronisation de ses données vers DataGouv.
Quelques précisions :
Mise en place de la procédure :
ETAPE 1: Chaque contributeur crée une organisation sur DataGouv avec un compte utilisateur en son nom. « INSCRIPTION sur DataGouv » - Ce compte utilisateur doit être adminsitrateur de l’organisation.
ETAPE 2: création d’un point de moissonnage sur DataGouv L’administrateur de l’organisation sur Data.gouv.fr doit déclarer un point de moissonnage depuis l’interface d’administration DataGouv.
Exemple 1 : https://ckan.openig.org/organization/departement-du-gard -> Identifiant du département du Gard
Example 2 : https://ckan.openig.org/organization/departement-des-pyrenees-orientales -> identifiant du département des Pyrénées Orientales
ETAPE 3: Une fois créé, chaque contributeur déclare son moissonneur aux administrateurs d’OPenIG en écrivant à contact@openig.org.
ETAPE 4: Etalab valide le moissonneur à la demande des administrateurs d’OPenIG.
ETAPE 5: La synchronisation du catalogue distant est faite une fois par jour (chaque nuit).
Le « site d’OPenIG » est construit à partir du système d’information OpenSource dédié à la gestion de catalogues de données CKAN.
CKAN propose une API permettant d’interroger et de consulter le catalogue des données et leurs ressources. L’API permet également de requêter directement le contenu des ressources tabulaires (CSV, XLS) lorsque celles-ci ont été correctement intégrées au Datastore.
Ainsi, il est par exemple possible de réaliser ce qui suit.
Obtenir au format JSON :
la liste totale des jeux de données : https://ckan.openig.org/api/3/action/package_list
les groupes thématiques : https://ckan.openig.org/api/3/action/group_list
les mots-clés utilisés : https://ckan.openig.org/api/3/action/tag_list
les organisations du catalogue : https://ckan.openig.org/api/3/action/organization_list
Obtenir un flux des jeux de données récemment mis à jour :
https://ckan.openig.org/api/3/action/recently_changed_packages_activity_list
Obtenir une réprésentation détaillée d’un des objets (jeu de données, organisation, ressource), toujours au format JSON :
Obtenir une représentation détaillée d’un jeu de données :https://ckan.openig.org/api/3/action/package_show?id=lme-orange-2017
Obtenir une représentation détaillée d’une organisation :https://ckan.openig.org/api/3/action/organization_show?id=departement-du-gard
Obtenir la liste de tous les jeux de données d’une organisation :https://ckan.openig.org/api/3/action/package_search?fq=organization:(departement-du-gard)&rows=150
Obtenir une liste de jeux de données « géographiques » :https://ckan.openig.org/api/3/action/package_list?datatype=donnees-geographiques
Obtenier des informations sur la thématique « Urbanisme ».https://ckan.openig.org/api/3/action/group_show?id=urbanisme
Rechercher de jeux de données à partir d’un mot clé :https://ckan.openig.org/api/3/action/package_search?q=energies
Rechercher des jeux de données « géographiques », au format CSV, associés à la thématique Mobilité et Transports : https://ckan.openig.org/api/3/action/package_search?fq=+res_format:CSV+datatype:donnees-geographiques+groups:mobilite-et-transports
Le site d’OPenIG permet également de requêter directement le contenu des jeux de données, ou plutôt de leurs ressources. Cette mécanique est rendue possible à travers l’interrogation de l’API de données de CKAN (API CKAN DATA).
Comme expliqué plus haut, le Datastore propose un service d’indexation des données tabulaires (CSV et XLS). L’API CKAN DATA permet d’exposer le contenu des ressources indexées dans le Datastore dont on peut ainsi interroger tout ou partie sans avoir à télécharger le jeu de données. Il est alors possible de faire des opérations de recherche sur les différents champs de données.
Afficher les cinq enregistrements du jeu de données des points de rencontre de covoiturage dans les Pyrénées Orientales:
https://ckan.openig.org/api/3/action/datastore_search?resource_id=1532854d-7f20-4408-b3d0-f2ae0a520477&limit=5
Cette requête utilise la méthode datastore_search de l’API de CKAN avec la notion de filtres.
Trouvez les arrêts de covoiturage dont le champ com_lieu est égal à PERPIGNAN:
https://ckan.openig.org/api/3/action/datastore_search?resource_id=1532854d-7f20-4408-b3d0-f2ae0a520477&filters={"com_lieu":"PERPIGNAN"}
Cette requête utilise la méthode datastore_search de l’API de CKAN avec la notion de filtres.
Trouver tous les arrêts de covoiturage dans les Pyrénées Orientales qui disposent d’arrêts de bus et de lumière:
https://ckan.openig.org/api/3/action/datastore_search?resource_id=1532854d-7f20-4408-b3d0-f2ae0a520477&filters={%22lumiere%22:%22true%22,%22comm%22:%22Pr%C3%A9sence%20d%27arceaux%20V%C3%A9lo%20et%20arr%C3%AAt%20de%20bus%22}
Cette requête utilise la méthode datastore_search de l’API de CKAN avec la notion de filtres.
Trouver les points de rencontre avec un nombre de places supérieur à 20 et un nombre de place PMR supérieur à 1 (requête SQL):
https://ckan.openig.org/api/3/action/datastore_search_sql?sql=SELECT from "1532854d-7f20-4408-b3d0-f2ae0a520477" WHERE "nbre_pl" > '20' AND "nbre_pmr" > '1'
Cette requête utilise la méthode datastore_search_sql de l’API de CKAN avec la notion de requête SQL .
Documentation de l’API (catalogue et ressources) et de l’API Datastore (requête sur les ressources) en anglais :
Le mot « package » qu’on trouve dans certaines requête et dans la documentation CKAN correspond à un jeu de donnée.
Pour appeler l’API CKAN, postez un dictionnaire JSON dans une requête HTTP POST sur l’une des URL d’API de CKAN. Les paramètres de la fonction API doivent être indiqués dans le dictionnaire JSON. CKAN retournera également sa réponse dans un dictionnaire JSON.
Une façon de publier un dictionnaire JSON sur une URL est d’utiliser le client HTTP en ligne de commande HTTPie. Il existe également d’autres outils comme Postman. Par exemple, pour obtenir une liste des noms de tous les jeux de données du groupe environnment
sur le site, installez HTTPie, puis appelez la fonction API group_list
en exécutant cette commande dans un terminal:
http https://ckan.openig.org/api/3/action/group_list
La réponse de CKAN ressemblera à ceci:
{
"help": "https://ckan.openig.org/api/3/action/help_show?name=group_list",
"result": [
"administration-et-action-publique",
"agriculture-sylviculture-et-peche",
"biodiversite-et-environnement",
"citoyennete-et-democratie",
"climat-air-et-energie",
"culture-patrimoine-et-tourisme",
"economie-et-entreprises",
"energies-et-reseaux",
"equipements-batiments-et-logements",
"formation-education-et-emploi",
"mobilite-et-transports",
"occupation-des-sols",
"referentiels",
"social-sante-et-sports",
"urbanisme",
"vues-aeriennes-et-imagerie"
],
"success": true
}
La réponse est un dictionnaire JSON avec 3 clés :
"success"
: true
or false
.
L’API est conçue pour retourner à chaque fois un 200 OK
dans le code statut de sa réponse, qu’il y ait une erreur ou non dans la requête, il est donc important de toujours vérifier la valeur de la clé success
dans le dictionnaire de réponse, et si elle est à false, de vérifier la valeur de la clé error
.
Note
S’il y a vraiment un gros problème de syntaxe dans la requête à l’API, CKAN pourra retourner une réponse HTTP avec un status code 409
, 400
or 500
(dans l’ordre croissant de gravité). Dans les prochaines versions de CKAN, il est prévu d’essayer de supprimer ce type de réponse pour n’avoirà la place que des retours 200 OK
et utiliser les valeurs "success"
et "error"
.
"result"
: le résultat retournée par la fonction appelée. Le type et la valeur du résultat dépendent de la fonction appelée. Dans le cas de la fonction group_list
, il s’agit d’une liste de chaînes, les noms de tous les jeux de données qui appartiennent au groupe.
Si c’est une erreur qui est retournée à la requête, le dictionnaire contiendra une clé "error"
avec le détail de l’erreur au lieu de la clé "result"
. Un dictionnaire de réponse contenant une erreur ressemblera à ceci:
{
"help": "Creates a package",
"success": false,
"error": {
"message": "Access denied",
"__type": "Authorization Error"
}
}
"help"
: le texte de documentation de la fonction appelée.
La même requête HTTP peut être effectuée en utilisant le module Python standard urllib2
avec ce code Python:
#!/usr/bin/env python
import urllib2
import urllib
import json
import pprint
# Make the HTTP request.
response = urllib2.urlopen('http://demo.ckan.org/api/3/action/group_list',
data_string)
assert response.code == 200
# Use the json module to load CKAN's response into a dictionary.
response_dict = json.loads(response.read())
# Check the contents of the response.
assert response_dict['success'] is True
result = response_dict['result']
pprint.pprint(result)
Les API CKAN sont versionnées. Si vous faites une demande à une URL d’API sans numéro de version, CKAN choisira la dernière version de l’API:
https://ckan.openig.org/api/action/package_list
Vous pouvez également spécifier le numéro de version de l’API souhaité dans l’URL que vous envoyez:
https://ckan.openig.org/api/3/action/package_list
La version 3 est actuellement la seule version de l’API Action.
Nous vous recommandons de spécifier le numéro d’API dans vos demandes, car cela garantit que votre client API continuera à fonctionner si un jour le site est mis à niveau vers de nouvelles versions de CKAN).
Certaines fonctions de l’API nécessitent une autorisation, par exemple pour ajouter ou modifier des jeux de données et des ressources). L’API utilise la même fonction d’autorisation et la configuration en tant qu’interface web, donc si un utilisateur est autorisé à faire quelque chose dans l’interface web, il sera autorisé à le faire via l’API.
Lorsque vous appelez une fonction de l’API nécessitant une autorisation, vous devez vous authentifier vous-même en fournissant votre clé API avec votre requête HTTP. Pour trouver votre clé API, connectez-vous au site CKAN en utilisant son interface web et visitez votre profil utilisateur.
Pour fournir votre clé API dans une requête HTTP, incluez-la dans un En-tête `` Authorization`` ou `` X-CKAN-API-Key``.
Par exemple, pour demander si vous suivez actuellement l’utilisateur `` markw`` sur demo.ckan.org en utilisant HTTPie, exécutez cette commande:
https://ckan.openig.org/api/3/action/am_following_user id = markw Autorisation: XXX
(Remplacer `` XXX`` avec votre clé API.)
Par exemple, pour obtenir la liste des activités de votre tableau de bord utilisateur, on lance ce code Python:
request = urllib2.Request('https://ckan.openig.org/api/3/action/dashboard_activity_list')
request.add_header('Authorization', 'XXX')
response_dict = json.loads(urllib2.urlopen(request, '{}').read())
Pour répondre aux scripts d’autres sites qui souhaitent accéder à l’API, les données peuvent être renvoyé au format JSONP, où les données JSON sont “complétées” avec une fonction call. La fonction est nommée dans le paramètre “callback”. Par exemple:
https://ckan.openig.org/api/3/action/package_show?id=adur_district_spending&callback=myfunction
Cela ne fonctionne qu’avec les requêtes GET