IGN - API IGNrando pour Applications Mobile Partenaires API documentation version 1.1.3
https://ignrando.fr/fr/partenaires/api/
Fonctionnement API Applications Mobile Partenaires
Cette API est servie par IGNrando et est destinée à être appelée par les applications mobile partenaires depuis le smartphone ou la tablette des utilisateurs de ces applications.
Parcours et Points d'intérêt
Sur le site IGNrando, un utilisateur peut créer un compte. Il peut alors marquer "Embarquer sur mon mobile" des parcours et des points d'intérêt qui lui semblent intéressants ou utiles.
Grâce à cette API, il retrouvera ces parcours et points d'intérêt sur sa ou ses applications mobile partenaires.
Parcours payants
Certains parcours sont payants. L’utilisateur devra souscrire un abonnement sur IGNrando. Cet abonnement est limité dans la temps. Au dela de la date de validité, l’application devra interdire l’affichage du détail de ce parcours pour cet utilisateur.
La fonction de l'API qui récupère le détail d'un parcours vérifiera que l'utilisateur a bien un abonnement valide en cours sur IGNrando pour ce parcours.
Options souscrites
Les applications mobile partenaires ont la possibilité de vendre des options sur IGNrando en accord avec l’IGN. L’utilisateur pourra souscrire, sur IGNrando, à ces options pour une durée déterminée.
L’API permettra à une application mobile partenaire de connaître l’état de souscription à ses options par l’utilisateur.
Identification de l'Application
Lors de la signature d'un partenariat entre L'IGN et l'éditeur d'une application mobile, l'IGN fournira à l'éditeur un identifiant pour l'application, nommée "Identifiant Application". Format : minuscules alphanumérique de 6 à 30 caractères. Cet identifiant sera à fournir lors de certains appels à l'API qui nécessitent de retourner des données spécifiques à l'application mobile (comme les options souscriptes par l'utilisateur pour cette application)
Identification de l'utilisateur
Un code identifiant, appelé IDIGN, sera affecté à chaque utilisateur de l'IGNrando.
L'utilisateur retrouvera son IDIGN dans son compte client sur l'IGNrando.
L'application mobile partenaire devra prévoir un formulaire permettant à son utilisateur de renseigner son IDIGN.
Cet IDIGN devra être fourni à chaque appel à l'API.
Protocole, Format et Encodage
L'API est accessible par HTTP selon le protocole REST. Les résultats sont retournés au format JSON, encodé en UTF-8 sans BOM (Byte Order Mark).
Exemple d'url d'appel : https://ignrando.fr/fr/partenaires/api/objets?idign=jren6789&types=tous
Un champ "success", "status", "time" sont fournis systématiquement avec chaque réponse.
- success indique true ou false selon si la demande a réussi ou échoué.
- status reprend le code HTTP (200 pour un succès, 400 pour un échec, voir chaque fonction pour plus de détail).
- time indique le temps de réponse (hors temps de transport), principalement utilisé pour débugger.
Les dates sont au format : yyyy-mm-dd (2015-02-25)
Les horodatages sont au format : yyyy-mm-dd hh:mm:ss (2015-02-25 11:58:54)
Les nombres décimaux utilisent le point comme séparateur décimal, et n'utilisent pas de séparateurs de milliers (4567.25).
Si une chaine de caractère peut comporter des caractères spéciaux, les guillemets sont précédés d'un anti-slash.
Des exemples sont fournis dans cette documentation pour chacune des fonctions mises à disposition.
Langue de l'API
La plus part des éléments de l'API est en Français.
Les noms des fonctions et des paramètres attendues sont en Français, sans espace, sans accent, mais peuvent comporter des majuscules. Attention à bien respecter la casse attendue.
Les valeurs possibles des paramètres attendus sont des codes exprimés dans la langue française, tout en minuscule, sans accent, sauf pour les valeurs booléennes qui vaudront "true" ou "false".
Le nom des champs des données retournées sont en langue française, tout en minuscule, sans accent. Les valeurs booléennes retournées, vaudront "true" ou "false".
Les messages d'erreurs sont en français.
Langue des données
Les parcours et points d'intérêts créés par des auteurs sur IGNrando peuvent être créés en une ou plusieurs langues.
Le site web de IGNrando n'affiche que des parcours en Français ou en Anglais. Toutefois les auteurs peuvent créer des versions catalane, bretonnes, italienne, suédoises, etc. de leurs parcours.
De plus, l'auteur peut commencer à travailler sur une traduction sans la publier.
L'API Application Mobile Partenaire retourne en priorité la version Française des parcours et points d'intérêt, à condition que cette langue aie bien été publiée par l'auteur de l'objet.
Si l'objet n'est disponible (et publié) qu'en Anglais, c'est alors la version anglaise de l'objet qui sera publiée. Seules les données saisies par l'auteur seront en anglais (Titre, Description, Informations Complémentaires, Media). Les libellés des états ou types (loisirs, type de sol, type d'itinéraire, ...) seront toujours en Français.
Aucune autre langue ne sera mise à disposition sur l'API. C'est à dire que les parcours et points d'intérêt qui ne sont publiés ni en Français, ni en Anglais, ne seront pas mis à disposition de l'API.
Images
Les images sont fournies sous forme d'url. Elles sont servies par IGNrando. Les images peuvent devenir indisponibles durant une maintenance de IGNrando.
Vidéos
Les vidéos sont fournies sous forme de script YouTube, DailyMotion ou Vimeo. Elles sont donc pas servies par IGNrando.
Descriptions & contenus "riches"
Certaines données, comme les descriptions, peuvent contenir du contenu riche. Ces contenus ne sont pas de l'HTML et ne doivent pas être interprétés comme tels. Toutefois, ils peuvent contenir des urls. Sur IGNrando, les fragments de contenus riches qui répondent à cette expression régulière : https?:\/\/([a-zA-Zéèêàùôî0-9%\/-.:#&?=]+)[a-zA-Zéèêàùôî0-9%\/-#] sont considérés comme url et sont transformés en liens cliquables (avec l'url elle même comme texte). Idéalement, les applications mobile partenaires permettront à leurs utilisateurs de cliquer sur ces urls.
Coordonnées de localisation
Tout point (point de départ d'un parcours, localisation d'un point d'intérêt, points de passage d'un parcours, etc.) est exprimé avec longitude, latitude et altitude. L'altitude est exprimée en mètres.
Changelog
- 1.1.3 : Modification de l'api de recherche de parcours et POI
- 1.1.2 : Ajout de l'API de recherche de parcours et POI, Modification de l'API objets pour y inclure les nouveaux paramètres ajoutés à l'API de recherche (et réponse)
- 1.1.1 : Ajout de l'API d'embarquement de parcours
- 1.1.0 : Changement IGNrando
- 1.0.9 : Ajout des api de création de parcours et POI
- 1.0.8 : Ajout d'informations supplémentaires dans la requete objet
- 1.0.7 : Ajout du listing de valeurs possibles pour les éléments à liste fermée dans la documentation
- 1.0.6 : Ajout des tags personnalisés dans les exports parcours et poi.
- 1.0.5 : /objets ne liste pas les parcours ou poi auxquels l'utilisateur n'a plus accès. Précision des cas d'erreur sur /parcours et /poi.
- 1.0.4 : Ajout de la latitude. Correction : pas de contenu HTML sur les descriptions.
- 1.0.3 : Format des codes de difficulté (0: non renseigné, 1: facile, ... 4: difficile). Plus de questions en attente. Liste des erreurs possibles à jour.
- 1.0.2 : Revue, clarifications, lévée de questions encore ouvertes, simplification du nom des APIs.
- 1.0.1 : Ajout d'informations demandées par des partenaires. Précisions sur les images, vidéos et contenus riches.
- 1.0.0 : Première diffusion du document
Roadmap
- à venir
Questions et Points ouverts
Aucun.
/objets
Liste des objets (parcours et points d'intérêt) à embarquer sur mobile.
Retourne la liste des objets que l'utilisateur a marqués, sur IGNrando, à embarquer sur son mobile.
Utilisez la date de dernière modification pour savoir si vous devez mettre à jour l'objet via la fonction de détail.
Le retour est une liste d'objets. Le champ "payant" n'existe que pour les parcours. Le champ "expiration_abonnement" n'est présent que si le champ "payant" vaut "true". Si le parcours est payant mais que le champs "expiration_abonnement" n'est pas présent, cela signifie que l'abonnement a une durée illimitée.
Les parcours et points d'intérêt marqués à embarquer, mais pour lesquels l'utilisateur n'a plus les droits d'accès ne sont pas listés. Exemple : un auteur qui a modifié son parcours pour le passer en privé, ou payant ou brouillon; l'utilisateur qui a quitté la communauté d'un auteur et se retrouve à ne plus pouvoir voir les parcours privés de cet auteur; l'abonnement à un parcours payant est arrivé à terme;
_url_image_: | Visuel principal de l'objet. Le nom de domaine et le chemin des urls peuvent changer pour une même version de l'API.
localisation: | Pour un parcours, informations sur l'emplacement du point de départ. Pour un POI, emplacement du point d'intérêt.
L'appi met à disposition les paramètres facultatifs suivants pour affiner la recherche :
- Localisation : Cette information en 3 paramètres :
- Bounding Box
- Commune (code INSEE)
- Département (code département)
- Catégorie de loisirs
- DdR (permet de filtrer les résultats uniquement sur des parcours/POI qualifiés en DdR)
- Statut Approuvé ou non
Erreurs possibles :
- IDIGN invalide
- valeur du paramètre type invalide
/parcours
Fiche de détail d'un parcours.
Retourne le détail d'un objet parcours. Le parcours demandé est accessible sous les mêmes conditions d'accès à la page de ce parcours sur IGNrando (abonnements, privé, public, etc.)
- auteur, _co_contributeur_ : Un auteur peut être soit "anonyme", seul le champ "nom" sera présent contenant le prénom de l'auteur ainsi que l'avatar par défaut (il n'y aura pas de champ "page"). Soit l'auteur est une communauté, son nom sera le nom de sa communauté, il aura un avatar et une page communauté.
- distance : la longueur d'un parcours, décimale, exprimée en mètres.
- _altitude_minimum_ : décimale, exprimée en mètres.
- _altitude_maximum_ : décimale, exprimée en mètres.
- _denivele_positif_ : décimal, exprimé en mètres.
- _denivele_negatif_ : décimal, exprimé en mètres.
- _note_moyenne_: Note de 1 à 5
- thematique : Touristique, Nature, Sport, Famille, Rencontre ou Balade
- _type_itineraire_: Boucle, Aller/Retour ou Aller simple
loisirs : Liste des activités de plein air possibles sur ce parcours. La durée est un nombre entier exprimant des heures, la difficulté vaut 0 à 4 (0 : non renseignée par l'auteur, 1 : très facile, 2 : facile, 3 : moyen, 4 : difficile). Chaque loisir possède une catégorie, une activité et une difficulté parmi celles présentées ci-dessous.
Catégories de loisirs : A pied (A_PIED), Cycle Roller (VELO), Maritime Fluvial (EAU), Equestre (EQUESTRE), Engins motorisés (MOTEUR), Aérien (AIR), Sports d'hiver (HIVER), Train (TRAIN)
Activités : Rando pédestre (RANDO_PEDESTRE), Trail (TRAIL), Running / course à pied (RUNNING), Course d'orientation (COURSE_ORIENTATION), Marche nordique (MARCHE_NORDIQUE), Escalade (ESCALADE), Viaferrata (VIAFERRATA), Accrobranche (ACCROBRANCHE), Geocaching (GEOCACHING), Chasse (CHASSE), VTT (VTT), VTC (VTC), Velo route (VELO_ROUTE), Cyclo tourisme (CYCLO_TOURISME), Roller (ROLLER), Bateau moteur (BATEAU_MOTEUR), Voilier (VOILIER), Canoë-Kayak (CANOE_KAYAK), Pêche (PECHE), Plongée (PLONGEE), Aviron (AVIRON), Nage (NAGE), Attelage (ATTELAGE), Randonnée/tourisme équestre (RANDONNEE_EQUESTRE), Ânes (ANES), Voiture (VOITURE), Moto (MOTO), Moto-cross (MOTOCROSS), 4x4 (QUATRE_QUATRE), Camping car (CAMPING_CAR), Parapente (PARAPENTE), Avion léger (AVION_LEGER), ULM (ULM), Deltaplane (DELTAPLANE), Parachute (PARACHUTE), Mongolfière (MONTGOLFIERE), Ski alpin (SKI_ALPIN), Ski de fond (SKI_FOND), Raquettes à neige (RAQUETTE), Luge (LUGE), Moto neige (MOTO_NEIGE), Chiens de traîneau (CHIEN_TRAINEAU), Ski de randonnée (SKI_RANDO), Train touristique (TRAIN_TOURISTIQUE)
Difficultés : Très Facile (DESCRIPTION_DIFFICULTE_1), Facile (DESCRIPTION_DIFFICULTE_2), Moyen (DESCRIPTION_DIFFICULTE_3), Difficile (DESCRIPTION_DIFFICULTE_4)
_url_image_: l'url est donnée à titre indicatif. Le nom de domaine et le chemin des urls peuvent changer pour une même version de l'API.
- _trace_gpx_: l'url est donnée à titre indicatif. Le nom de domaine et le chemin des urls peuvent changer pour une même version de l'API. (idem trace trk et trace kml)
- _expiration_abonnement_: date à laquelle l'abonnement d'accès au parcours expire. Si le parcours est payant mais que le champs "expiration_abonnement" n'est pas présent, cela signifie que l'abonnement a une durée illimitée. Ce champ est présent uniquement si le parcours est payant.
Erreurs possibles :
- IDIGN invalide
- Idobjet inexistant
- Idobjet non embarqué (l'utilisateur n'a pas marqué ce parcours comme devant être embarqué sur son mobile)
- Idobjet non autorisé pour cet utilisateur Un parcours marqué "à embarquer sur mon mobile" mais auquel l'utilisateur n'a pas ou plus accès. Par exemple, un parcours que son auteur aura retiré de la publication (repassé en brouillon), restreint aux abonnés de sa communauté (passé en privé), ou décidé de rendre le parcours payant, ou a décidé de limiter sa publication au site IGNrando et interdire sa diffusion sur application mobile. Ou un parcours payant dont l'abonnement n'a pas été renouvelé par l'utilisateur.
/poi
Fiche de détail d'un point d'intérêt.
Retourne le détail d'un objet point d'intérêt. Le point d'intérêt demandé est accessible sous les mêmes conditions d'accès à la page de ce point d'intérêt sur IGNrando (abonnements, privé, public, etc.)
- auteur : Un auteur peut être soit "anonyme", seul le champ "nom" sera présent contenant le prénom de l'auteur, ainsi que l'avatar par défaut (il n'y aura pas de champ "page"). Soit l'auteur est une communauté, et dans ce cas, il aura un avatar et une page communauté.
categories : Chaque catégorie est divisée en catégorie et sous catégorie. Les valeurs possibles sont les suivantes :
- Catégories : Hébergements (POI_CATEGORIE_HEBERGEMENTS), Informations (POI_CATEGORIE_INFORMATIONS), Lieux d'intérêt (POI_CATEGORIE_LIEUX_D_INTERETS), Producteurs (POI_CATEGORIE_PRODUCTEUR)
Sous-catégories : Evènements sportifs (POI_SOUS_CATEGORIE_SPORT), Auberge de jeunesse (POI_SOUS_CATEGORIE_AUBERGE_JEUNESSE), Camping (POI_SOUS_CATEGORIE_CAMPING), Village vacances (POI_SOUS_CATEGORIE_VILLAGE_VACANCE), Gîtes (POI_SOUS_CATEGORIE_GITE_CHAMBRE_HOTES), Hôtels (POI_SOUS_CATEGORIE_HOTELS), Refuge (POI_SOUS_CATEGORIE_REFUGE), Relais château (POI_SOUS_CATEGORIE_RELAIS_CHATEAU), Offices de Tourisme (POI_SOUS_CATEGORIE_OFFICES_DE_TOURISME), Arrivée (POI_SOUS_CATEGORIE_ARRIVEE), Départ (POI_SOUS_CATEGORIE_DEPART), Etape, fanion (POI_SOUS_CATEGORIE_ETAPE_FANION), Point de rencontre (POI_SOUS_CATEGORIE_POINT_RENCONTRE), Art & Musées (POI_SOUS_CATEGORIE_ART_ET_MUSEES), Château (POI_SOUS_CATEGORIE_CHATEAU), Col (POI_SOUS_CATEGORIE_COL), Gorge (POI_SOUS_CATEGORIE_GORGE), Histoires et Légendes (POI_SOUS_CATEGORIE_HISTOIRES_ET_LEGENDES), Lac / Etendue d'eau (POI_SOUS_CATEGORIE_LAC_ETENDUE_DEAU), Lieux de mémoire (POI_SOUS_CATEGORIE_LIEUX_DE_MEMOIRE), Lieux historique (POI_SOUS_CATEGORIE_LIEU_HISTORIQUE), Monuments et Architecture (POI_SOUS_CATEGORIE_MONUMENTS_ARCHITECTURE), Parc animalier, Zoo (POI_SOUS_CATEGORIE_PARC_ANIMALIER), Parc d'attractions (POI_SOUS_CATEGORIE_PARC_ATTRACTIONS), Parcs & jardins (POI_SOUS_CATEGORIE_PARCS_ET_JARDINS), Patrimoine industriel (POI_SOUS_CATEGORIE_PATRIMOINE_INDUSTRIEL), Eglise, Abbaye, monastère (POI_SOUS_CATEGORIE_EGLISE_ETC), Point d'intérêt naturel (POI_SOUS_CATEGORIE_POI_NATUREL), Points de vue et panorama (POI_SOUS_CATEGORIE_PDV_ET_PANORAMA), Réserve naturelle (POI_SOUS_CATEGORIE_RESERVE_NATURELLE), Chûtes d'eau (POI_SOUS_CATEGORIE_CHUTE_DEAU), Patrimoine Mondiale de l'UNESCO (POI_SOUS_CATEGORIE_PATRIMOINE_UNESCO), Point shopping (POI_SOUS_CATEGORIE_POINT_SHOPPING), Alcool (POI_SOUS_CATEGORIE_ALCOOL), Artisans (POI_SOUS_CATEGORIE_ARTISANS), Boulangerie / Pâtisserie (POI_SOUS_CATEGORIE_BOULANGERIE), Dégustation (POI_SOUS_CATEGORIE_DEGUSTATION), Poisson (POI_SOUS_CATEGORIE_POISSON), Ferme bio (POI_SOUS_CATEGORIE_FERME_BIO), Viande et charcuterie (POI_SOUS_CATEGORIE_VIANDE), Produit de la ferme (POI_SOUS_CATEGORIE_PRODUIT_FERME), Pique-Nique (POI_SOUS_CATEGORIE_PIQUENIQUE), Cafés, Bars, ... (POI_SOUS_CATEGORIE_CAFES_BARS), Restaurants (POI_SOUS_CATEGORIE_RESTO_BRASSERIE), Fast-Food (POI_SOUS_CATEGORIE_FAST_FOOD), Table d'hôtes (POI_SOUS_CATEGORIE_TABLE_DHOTES)
altitude : décimal exprimé en mètres.
Erreurs possibles :
- IDIGN invalide
- Idobjet inexistant
- Idobjet non embarqué (l'utilisateur n'a pas marqué ce poi comme devant être embarqué sur son mobile)
- Idobjet non autorisé pour cet utilisateur Un poi marqué "à embarquer sur mon mobile" mais auquel l'utilisateur n'a pas ou plus accès. Par exemple, un poi que son auteur aura retiré de la publication (repassé en brouillon), restreint aux abonnés de sa communauté (passé en privé), ou a décidé de limiter sa publication au site IGNrando et interdire sa diffusion sur application mobile.
/options
Liste des options souscrites par l'utilisateur.
Retourne la liste des options souscrites par l'utilisateur pour l'application mobile qui en fait la demande.
Seule les options souscrites sur IGNrando sont listées. Les options souscrites par l'utilisateur sur les magasins mobile (AppStore, Google Play, etc.) ne sont pas connues de IGNrando et ne sont donc pas retournées.
Nous n'excluons pas la possibilité d'avoir des options dont la date de début de souscription est postérieure à la date du jour (cela n'arrivera pas dans un process type, mais c'est techniquement possible, et pourrait être utilisé à l'avenir).
Si le champ "expiration_abonnement" n'est pas présent, l'abonnement est à durée illimitée.
/nouvelObjet
Création de parcours ou de POI par un partenaires tiers
Création de parcours ou de POI via un xml. La documentation spécifique au xml attendu est disponible sur http://flux.espaceloisirs.ign.fr/documentation/flux_parcours/ pour les parcours et http://flux.espaceloisirs.ign.fr/documentation/flux_pois/ pour les POI
/embark
Cette API permettra à une application tierce (tel que iPhiGeNie) de pouvoir embarquer / dés-embarquer des parcours sur application mobile
/recherche
Cette requete permet à des partenaires de rechercher des parcours ou poi
Cette requete permet à des partenaires de rechercher des parcours ou poi Récuperer une liste de parcours et/ou POI en fonction de critères de recherche notamment un positionnement géographique
Utilisez la date de dernière modification pour savoir si vous devez mettre à jour l'objet via la fonction de détail.
Le retour est une liste d'objets. Le champ "payant" n'existe que pour les parcours. Le champ "expiration_abonnement" n'est présent que si le champ "payant" vaut "true". Si le parcours est payant mais que le champs "expiration_abonnement" n'est pas présent, cela signifie que l'abonnement a une durée illimitée.
Les parcours/POI à considérer (accessibles de l’appli) auront les caractéristiques suivantes :
- Publié
- Public
- Synchronisation sur mobile en valeur « Oui »
L'appi met à disposition les paramètres facultatifs suivants pour affiner la recherche :
- Localisation : Cette information en 3 paramètres :
- Bounding Box
- Commune (code INSEE)
- Département (code département)
- Catégorie de loisirs
- DdR (permet de filtrer les résultats uniquement sur des parcours/POI qualifiés en DdR)
- Statut Approuvé ou non