OpenAPI

OpenAPI
Description de l'image OpenAPI Specification Logo Pantone.svg.

Informations
Développé par Initiative OpenAPI (d) et Fondation LinuxVoir et modifier les données sur Wikidata
Dernière version 3.2.0 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/OAI/OpenAPI-SpecificationVoir et modifier les données sur Wikidata
Type Spécification
Interface description languageVoir et modifier les données sur Wikidata
Licence Licence Apache 2.0Voir et modifier les données sur Wikidata
Site web openapis.orgVoir et modifier les données sur Wikidata

OpenAPI, connu dans ses précédentes versions sous le nom de Swagger, est une spécification qui permet de décrire l'API d'un service web sous la forme d'un document YAML ou JSON[2].

Historique

Le développement de Swagger a débuté en 2010, par Tony Tam, qui travaillait pour l'entreprise Wordnik[3].

En la société SmartBear a acquis la spécification open-source Swagger, de Reverb Technologies, maison mère de Wordnik[4].

En SmartBear a annoncé donner la spécification Swagger à une nouvelle organisation appellée OpenAPI Initiative, sous le parrainage de la Fondation Linux[5].

En OpenAPI Initiative a sorti la version 3.0.0 de la spécification[6], puis, en , la version 3.1.0[7].

Historique des versions

Version[8] Date Notes
3.2.0 19 septembre 2025
3.1.2 19 septembre 2025
3.1.1 24 octobre 2024
3.1.0 16 février 2021
3.0.4 24 octobre 2024
3.0.3 21 février 2020
3.0.2 8 octobre 2018
3.0.1 7 décembre 2017
3.0.0 26 juillet 2017 Première version de OpenAPI

Exemple

Imaginons un service web ayant un unique point d'accès qui, à une requête GET du type https://example.fr/bonjour-monde?nom=paul retourne la réponse {"message": "bonjour paul"}. Ce service peut être décrit par cette spécification openAPI[9]

openapi: 3.0.3
info:
  title: Mon Web Service
  version: 0.0.1
servers:
  - url: https://example.fr
paths:
  /bonjour-monde:
    get:
      summary: Génère un message de salutation
      parameters:
        - name: nom
          in: query
          schema:
            type: string
      responses:
        "200":
          description: message de salutation généré
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string

Usage

Une spécification au format OpenAPI peut être utilisée par de nombreuses applications et outils[10]. Il est par exemple possible de générer un échafaudage pour le serveur, des clients[11], de la documentation ou de valider qu'une requête ou une réponse est conforme à la spécification OpenAPI[12].

Pratiques d'ingénierie logicielle

Il y a deux workflows principaux pour définir une spécification au format OpenAPI : commencer par implémenter le service web puis utiliser un outil pour générer sa spécification automatiquement à partir de ce code (approche appelée "Code-first") ; ou commencer par écrire la spécification avant de développer le service web (approche appelée "Design-first")[13].

Chacun de ces workflows a ses avantages et inconvénients. Commencer par développer le service web permet de prototyper et d'itérer plus rapidement. Commencer par écrire la spécification permet à toutes les parties prenantes de s'accorder, ce qui peut permettre de travailler en parallèle sur les tâches qui en dépendent (développement du service web, de ses tests et de sa documentation, d'applications qui vont consommer ce service, ...). Cette approche permet aussi d'utiliser un outil capable de générer un échafaudage pour le service à partir de cette spécification, ce qui peut accélérer son développement.

Références

  1. « Release 3.2.0 », (consulté le )
  2. (en) « What is OpenAPI? » (consulté le )
  3. (en) « Swagger creator joins SmartBear » (consulté le )
  4. (en) « SmartBear Acquires Swagger » (consulté le )
  5. (en) « OpenAPI - FAQ » (consulté le )
  6. (en) « The OAI Announces the OpenAPI Specification 3.0.0 » (consulté le )
  7. (en) « OpenAPI Specification 3.1.0 Available Now » (consulté le )
  8. (en) « OpenAPI Specification - Releases » (consulté le )
  9. (en) « Open API Map » (consulté le )
  10. (en) « OpenAPI.Tools » (consulté le )
  11. (en) « OpenAPI Generator » (consulté le )
  12. (en) « Express OpenApi Validator » (consulté le )
  13. (en) McKenzie Tucci, « Code-First vs. Design-First: Eliminate Friction with API Exploration » (consulté le )

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.