Qu'est-ce que Swagger ? OpenAPI Spec, Outils, Exemples
Swagger est une suite d'outils API construite autour de l'OpenAPI Spec, concevoir, documenter, mocker, tester APIs REST. Inclut UI, Editor, Codegen.
Qu'est-ce que Swagger ?
Swagger est un écosystème d'outils open-source construits autour de l'OpenAPI Specification (OAS) pour concevoir, documenter et consommer des APIs REST. Originalement développé par SmartBear, la spec a été donnée à la Linux Foundation en 2016 et renommée OpenAPI, mais le nom Swagger est resté pour le tooling.
L'OpenAPI Specification (actuellement 3.1) est un document YAML ou JSON qui décrit une API REST : endpoints, paramètres, schémas request/response, authentification, exemples. Les outils génèrent ensuite documentation, SDKs client, server stubs, serveurs mock et tests depuis cette spec.
Swagger vs OpenAPI : quelle est la différence ?
| Terme | Ce que ça signifie |
|---|---|
| OpenAPI Specification (OAS) | Le standard / format pour décrire les APIs REST |
| Swagger | Le nom originel (pré-2016) de la spec ; maintenant la marque pour le tooling SmartBear |
| Swagger UI | Outil open-source qui rend les specs OpenAPI comme docs HTML interactives |
| Swagger Editor | Éditeur browser-based pour écrire des specs OpenAPI avec live preview |
| Swagger Codegen | Génère SDKs client et server stubs en 40+ langages |
| Swagger Hub | Plateforme hosted de SmartBear pour design API collaboratif |
Anatomie d'une spec OpenAPI
openapi: 3.1.0
info:
title: Pet Store API
version: 1.0.0
servers:
- url: https://api.petstore.example.com/v1
paths:
/pets:
get:
summary: List all petsOutils écosystème Swagger
| Outil | But | Open source ? |
|---|---|---|
| Swagger UI | Rendre specs comme docs interactives | Oui |
| Swagger Editor | Écrire specs avec live validation | Oui |
| Swagger Codegen | Générer clients/server stubs | Oui |
| OpenAPI Generator | Fork de Codegen, développement plus actif | Oui |
| Swagger Hub | Design API collaboratif hosted | Non |
| Stoplight Studio | Éditeur OpenAPI visuel | Oui |
| Redoc | Renderer alternatif | Oui |
| Prism | Serveur mock depuis spec OpenAPI | Oui |
| Spectral | Linter OpenAPI | Oui |
Pourquoi utiliser Swagger / OpenAPI ?
- Single source of truth.
- APIs design-first.
- SDKs client auto-générés.
- Docs interactives.
- Serveurs mock.
- Contract testing.
- Format standardisé.
- Code-first ou design-first.
OpenAPI 3.0 vs 3.1 : qu'est-ce qui a changé ?
| Aspect | OpenAPI 3.0 | OpenAPI 3.1 |
|---|---|---|
| Compat JSON Schema | Subset | Full 2020-12 |
| Webhooks | Non supporté | First-class |
| Exemples | Single par response | Multiples par response |
| Nullable | nullable: true | type: [string, null] |
Workflows OpenAPI courants
Design-first (recommandé)
- Écrire la spec OpenAPI collaborativement.
- Reviewer avec stakeholders.
- Générer server stubs + SDKs client.
- Implémenter logique business dans stubs.
- Utiliser spec pour contract tests en CI.
Code-first
- Annoter code avec decorators framework-specific.
- Framework auto-génère spec OpenAPI.
- Spec servie à
/openapi.json. - Swagger UI rend docs interactives.
Pièges et best practices
- Spec dévie de la réalité.
- Exemples manquants.
- Naming inconsistant.
- Nesting trop profond.
- Auth mal documentée.
- Versioning ignoré.
Associé : surveillez vos API OpenAPI/Swagger.
FAQ : Swagger / OpenAPI
Swagger est-il gratuit ?
Les outils open-source sont gratuits. Swagger Hub a un tier gratuit et plans payants.
Devrais-je utiliser Swagger ou Postman ?
Buts différents. Swagger/OpenAPI est le format spec ; Postman est pour testing/exploring.
Devrais-je utiliser design-first ou code-first ?
Design-first pour APIs stables, publiques. Code-first pour APIs internes.
Qu'est-ce qui remplace Swagger Codegen ?
OpenAPI Generator, un fork communautaire plus actif.
Puis-je utiliser Swagger pour GraphQL ou gRPC ?
Non. OpenAPI est REST-specific.
Comment versionner mon API ?
URL versioning (/v1/users) ou header versioning.
Load-testez votre API documentée avec Swagger avec LoadFocus
Si vous avez une spec OpenAPI et voulez load-tester l'implémentation, LoadFocus exécute des scripts JMeter et k6 contre votre vraie API depuis 25+ régions avec jusqu'à 12 500 VUs. Inscrivez-vous sur loadfocus.com/signup.
Outils LoadFocus connexes
Mettez ce concept en pratique avec LoadFocus, la plateforme même qui propulse tout ce que vous venez de lire.