La majorité des services en ligne, et désormais des équipements, proposent leurs données sous forme d'API. La GTB ayant un rôle fédérateur, il est souvent très intéressant d’agréger ces données proposées pour les coupler aux données terrains : 

Qu'est-ce qu'une API ?  

Une API (Interface de Programmation Applicative) est entre autre un ensemble normalisé de fonctions qui sert de façade par laquelle un logiciel offre des services à d'autres logiciels. Il existe des API logicielles (Niagara dispose de nombreuses API) et des API Web (RTE, Sigfox etc.) aussi appelées WebServices. Les APIs sont le plus souvent accompagnées d'une description qui spécifie comment utiliser ces fonctions.

Les API Web permettent de facilement échanger des informations entre applications afin de fournir de nouveaux services.

 

Pourquoi le RestNetwork ?

Le contenu des APIs n'étant pas standardisé, il était indispensable jusqu'à maintenant d'avoir recours à un développement spécifique pour communiquer avec chaque API. Il fallait interpréter "en dur" les données reçues de ces APIs pour les transformer dans Niagara de manière utilisable (points, historiques, programmes horaires etc.). Même l'interprétation des données transmises par des capteurs Sigfox est différente selon le constructeur et nécessitait pour chacun d'entre eux un développement spécifique.

C'est pour simplifier l'accès aux APIs dans Niagara que nous lançons le driver RestNetwork, disponible uniquement en lecture aujourd'hui. Il permet :

Il permet de gérer l'interprétation des données de manière dynamique à l'aide d'une programmation par blocs d'objet de conversion pour transformer le contenu au format JSON en valeur ou en état.

 

Le Driver a été conçu de manière très dynamique permettant de récupérer facilement des données d'une API pour accéder à une autre et de convertir tout type de données du JSON en valeur. Si un cas n'a pas été géré, ou nous n'avons pas prévu une authentification particulière, il est très facile d'enrichir le driver et de développer uniquement le morceau manquant.

Documentation

Toute la documentation du RestNetwork est disponible ici ou en faisant un clic droit sur les composants du module dans le Workbench. Nous en avons profité pour faire une documentation générale sur le protocole HTTP et les API Web disponible ici.

Exemples

Nous avons intégré directement dans le module des exemples d'utilisation du module avec des services comme RTE, la RATP, Sigfox (avec notamment un exemple de conversion des équipements Adeunis), Darksky Weather et BreezoMeter. Tous ces exemples sont fonctionnels et vous permettrons de vous faire la main.

Accompagnement

Vous avez une API avec laquelle communiquer ? Les notions de REST et de format JSON sont floues ? Nous pouvons vous accompagner dans la mise en place du Driver et des conversions de données.

Disponibilité

Le driver est téléchargeable ici. Il est disponible gratuitement pour l'instant en bêta. La licence est décomposée par pack de points (5, 10, 100, illimité).