divia-api
v2.2.5
Published
Dvia API v2
Downloads
24
Readme
Divia API
Version 2 de l'API Divia.
Puisque l'ancienne API de Keolis n'est plus disponible, celle-ci utilise l'API du site de Divia qui renvoie un extrait de page HTML dans lequel se trouve les horaires des prochains passages.
Importation de l'API :
- Avec ESM :
import DiviaAPI from 'divia-api';
- Avec CommonJS :
const DiviaAPI = require('divia-api');
- Via un CDN :
<script src="https://cdn.jsdelivr.net/npm/divia-api/dist/divia-api.min.js"></script>
Utilisation
Exemple :
const api = new DiviaAPI();
(async () => {
// Charge les données de Divia (https://bo-api.divia.fr/api/reseau/type/json) dans api.reseau :
await api.init();
// Récupère la ligne :
const line = api.findLine('T1', 'A');
// ou :
const line = api.getLine('82');
// Récupère l'arrêt :
const stop = line.findStop('République T1');
// ou :
const stop = line.getStop('1560');
// ou directement :
const stop = api.findStop('T1', 'République T1', 'A');
// Récupère les prochains passages :
console.log(await stop.totem());
})();
Chaque ligne possède deux directions : A
et R
. A
est utilisé par défaut dans l'API.
Pour chaque Line ou Stop, vous pouvez récupérer les données fournies par Divia via la propriété data
.
Fonctionnement
L'API récupère dans un premier temps les données du réseau Divia à cette adresse : https://bo-api.divia.fr/api/reseau/type/json (méthode api#init
) afin de pouvoir récupérer les identifiants et informations des lignes et arrêts. Vous pouvez donc si vous le souhaitez mettre en cache la variable JSON api.reseau
afin d'éviter de refaire la requête à chaque démarrage de votre application.
Pour récupérer les prochains passages Totem, il faut faire une requête HTTP POST à cette adresse : https://www.divia.fr/bus-tram?type=479, avec le contenu application/x-www-form-urlencoded suivant :
requete=arret_prochainpassage
requete_val[id_ligne]=<id_ligne>
requete_val[id_arret]=<id_arrêt>
Note : bien penser à encoder les crochets avec URL encode (par exemple :requete_val%5Bid_ligne%5D
).
Licence
Licence MIT
Copyright (c) 2021 gauthier-th ([email protected])