Vers un format standard pour décrire des APIs REST
IBM, Apigee, Microsoft, Google et consort sont les membres fondateurs de l’Open API Initiative qui vise à créer un format standard de description d’API. Hébergé par la Linux Foundation, le projet reprend le projet Swagger.
Un pas de plus vers un standard formel pour les APIs. La Linux Foundation vient d’accrocher un nouveau projet collaboratif à son mur : l’Open API Initiative. Son objectif : définir un format de spécification standard capable de décrire une API afin d’en faciliter son implémentation et sa gestion. A l’heure où le Cloud, la modernisation des systèmes et la mobilité, impose d’ouvrir et d’exposer les fonctions des SI, ce projet devrait structurer un écosystème de l’API grandissant, mais parfois un peu disparates.
L’Open API Initiative repose en fait sur un projet Open Source déjà existant : Swagger. Développé en 2010, ce projet a pour objectif de « permettre à la fois aux humains et aux machines de découvrir et de comprendre les possibilités du service sans avoir à accéder au code source, à la documentation, ou via une inspection du trafic réseau », explique le site du projet. En clair, cela permet de définir un modèle de spécification pour une API REST.
Face à sa popularité (15 000 téléchargements d’outils Swagger par jour), la société qui développe Swagger a décidé de placer son framework sous le modèle de gouvernance communautaire de la Linux Foundation. Une avancée logique, résume encore un billet de blog du projet :: « Alors que des entreprises comme IBM ont consenti des investissements clés dans Swagger, il fait sens de rassembler plus de cadres autour de la table afin de construire la prochaine étape de Swagger ».
Si IBM est en effet un des membres fondateurs de l’Open API Initiative, Apigee, le Français Restlet, Microsoft, Google, 3scale, Intuit, Paypal, CapitalOne et SmartBear (la société à son origine, qui en a fait don à la Linux Foundation) sont également présents.
Swagger comprend en fait une série d’outils, tous sous licence Apache. D’abord Swagger Core (des bibliothèques Java pour générer er visualiser les descriptions Swagger), puis le Swagger Codegen (pour la génération du code), Swagger UI (une interface Web pour visualiser le descriptif) et Swagger Editor (un éditeur Web pour créer des définitions Swagger en YAML ou JSON).