Utiliser l'API géographique du gouvernement
Dans l'application Papillon, lorsque vous vous connectez au service PRONOTE, vous avez la possibilité de rechercher l'URL de votre établissement en utilisant soit le nom de votre ville, soit son code postal.
Pour récupérer les établissements qui utilisent PRONOTE dans une certaine localisation, on utilise l'API non documentée d'Index-Education situé à l'adresse suivante : https://www.index-education.com/swie/geoloc.php
Cette API prend en paramètre la longitude et la latitude de la localisation que l'on recherche. Pour plus d'information, voir le code de Pawnote.
Cependant, comment peut-on récupérer la latitude et la longitude d'une ville dont on a seulement entré le nom ou le code postal ?
Le géocodage
Le procédé qui permet de convertir une adresse en coordonnées géographiques (latitude et longitude) est appelé le géocodage.
Il nous faut maintenant un service qui expose une API permettant de faire du géocodage en France.
La galère des APIs
Il existe de nombreux services proposant cette fonctionnalité, mais beaucoup d'entre eux ne sont pas adaptés à l'utilisation dans Papillon.
Voici quelques exemples de services que nous ne pouvons pas utiliser, car ils nécessitent un compte avec une clé API pour effectuer des requêtes, parfois avec des limitations sur les comptes gratuits :
- Bing Maps
- Google Maps
- OpenWeatherMap
- MapBox
...et d'autres encore.
Pourtant, cette fonctionnalité existe dans Papillon. Alors, quel service avons-nous finalement choisi ?
L'option gouvernementale
On oublie souvent que le gouvernement français offre un large éventail d'API accessibles gratuitement pour accéder à des données.
Ici, notre intérêt se porte sur l'API "geo", qui donne accès aux référentiels géographiques : https://geo.api.gouv.fr/
L'API que nous recherchons pour le géocodage est l'API Adresse.
Elle impose une limite de 50 appels par seconde par adresse IP, ce qui est largement suffisant, et aucune clé API n'est requise : exactement ce que nous recherchons !
Utilisation
Vu que cette API ne requiert aucune authentification au préalable et fonctionne directement, on peut tout simplement implémenter la requête vers l'API.
Une fois les coordonnées récupérés, on peut les donner dans l'API d'Index-Education et récupérer la liste des établissements dans, cet exemple, Limoges.
Conclusion
L'intégration de la fonction de localisation par recherche dans l'application Papillon a été réalisée en optant pour l'API gouvernementale qui offre des données précises sans nécessiter d'authentification préalable ni de clé API.
Cette solution a permis de simplifier le processus de géocodage et d'obtenir les coordonnées géographiques des villes recherchées de manière efficace pour permettre d'offrir une expérience utilisateur optimale.