L’Open API Initiative : un pas crucial vers la convergence des langages

Les APIs figurent parmi les sujets et technologies les plus en vue dans un environnement régi par l’économie des applications. Comment les rendre plus faciles à exploiter ?

La cristallisation autour d'un métalangage d’APIs

Un métalangage d’APIs est un langage utilisé pour définir et décrire une API ; il est crucial pour les développeurs. En effet, les APIs Web sont ouvertes par nature, et même si elles respectent une architecture spécifique, elles ne suivent aucun modèle préétabli. Les technologies plus anciennes et traditionnelles, elles, sont davantage formalisées, ce formalisme permettant justement d’en décrire le service ou la structure.

Dans le cas des bases de données par exemple, ce sont les tables de catalogue qui jouent ce rôle. Il suffit d'interroger ces tables système pour obtenir une description de l’ensemble des tables d’une base de données, ainsi que leur structure. Pour le protocole SOAP, il s’agit du WSDL : un service Web SOAP contient un fichier de description selon la grammaire WSDL. Celui-ci décrit les actions disponibles avec ce service Web, les méthodes existantes, les paramètres pouvant être transmis et récupérés, etc.

En revanche, le style REST, lui, ne permet pas de suivre un tel formalisme. Les APIs REST doivent donc être documentées de façon adéquate (à l’extérieur de l’API elle-même). On peut utiliser pour cela du contenu lisible par l’homme (page HTML, PDF) et/ou lisible par la machine.

La multiplicité des langages de description d’APIs, source d’incohérence

Il existe aujourd'hui plusieurs langages de description d’APIs : Swagger, RAML et API Blueprint sont les principaux. Chacun dispose de ses avantages et de ses limites.

En 2015, Swagger, l’un de ces langages, a été racheté par l’éditeur SmartBear. Quelques mois plus tard, un groupe d’acteurs du secteur des APIs, dont Restlet fait partie, a lancé l’Open API Initiative (OAI) sous la houlette de la Fondation Linux. L’objectif de cette initiative est en particulier de normaliser les descriptions des APIs. Bien que l’OAI ait pour mission initiale de faire progresser la spécification Swagger, certains membres ont l’intention de porter l’initiative au-delà, et de coopérer avec d’autres acteurs de la communauté des APIs, notamment en impliquant les équipes de RAML ou d’API Blueprint.

Tout ceci devrait entraîner une meilleure compréhension de la nécessité et de l’importance d’un métalangage d’APIs ouvert. La réussite de l’initiative, cependant, dépendra de sa capacité à coopérer avec les autres spécifications du secteur, open source ou non. Bien qu'il soit plus simple de se focaliser sur Swagger et plus difficile d'incorporer d’autres langages et technologies, c’est pourtant bien là que réside la réelle opportunité : définir et promouvoir une nouvelle spécification créée par la communauté et répondant aux exigences d’un groupe d’utilisateurs plus étendu. Ce n’est qu’ainsi qu’il sera réellement possible de profiter d’un métalangage d’APIs cristallisant les besoins de chacun et adapté à l’ensemble des scénarios.

Kernel Linux / HTML