Comment migrer de Swagger CLI vers Apidog CLI

Un guide pas à pas pour migrer de Swagger CLI vers Apidog CLI : correspondance des commandes pour la validation et le regroupement, l'installation, la connexion, la configuration CI, et ce que vous y gagnez.

INEZA Felin-Michel

INEZA Felin-Michel

16 June 2026

Comment migrer de Swagger CLI vers Apidog CLI

enterprise.banner.title

enterprise.banner.feature1

enterprise.banner.feature2

enterprise.banner.feature3

enterprise.banner.ctaB

Si vous exécutez encore swagger-cli validate et swagger-cli bundle dans votre pipeline, vous maintenez un script autour d'un outil que personne ne maintient plus. Le référentiel GitHub de swagger-cli l'indique désormais directement : le package n'est plus maintenu, le README cite le fardeau de devoir gérer une énorme base d'utilisateurs qui contribue peu en retour, et il oriente les nouveaux utilisateurs vers d'autres solutions.

C'est donc le bon moment pour décider où votre flux de travail de spécification va se situer par la suite. Ce guide est un runbook de migration, pas un tutoriel d'utilisation. Si vous n'êtes pas prêt à passer à autre chose et que vous voulez simplement continuer à utiliser l'ancien outil, le guide Swagger CLI couvre en détail validate et bundle. Cet article concerne la transition, en particulier la migration de Swagger CLI vers Apidog CLI sans casser votre CI.

Téléchargez Apidog si vous souhaitez suivre avec de vraies commandes. C'est gratuit pour commencer, aucune carte de crédit n'est requise.

bouton

Pourquoi migrer maintenant

La réponse honnête d'abord : swagger-cli est déprécié et non maintenu depuis un certain temps. Il fonctionne toujours. Beaucoup de pipelines l'appellent encore aujourd'hui. Mais un outil qui ne recevra pas de corrections de bogues ou de mises à jour de spécifications est une dette technique qui pèse sur votre build, et les mainteneurs eux-mêmes recommandent de passer à autre chose.

Ils désignent un successeur en particulier. Redocly CLI est le remplacement direct le plus proche si tout ce que vous vouliez était "validate" et "bundle" dans le terminal. C'est un outil open source, "code-first" et natif du terminal. Sa commande lint effectue une validation structurelle, et redocly bundle suit les pointeurs $ref exactement comme le faisait swagger-cli bundle. Si votre seul objectif est un échange 1:1 qui maintient la spécification comme un fichier plat dans votre dépôt, Redocly est le choix naturel, et Redocly publie son propre guide de migration avec la correspondance des commandes. Il n'y a aucune honte à suivre cette voie.

Apidog a un objectif différent. Migrez vers Apidog CLI lorsque vous voulez que la spécification fasse plus que rester dans un fichier. Au lieu de valider et de regrouper un document statique, vous intégrez toute la définition dans un espace de travail vivant, puis vous la validez à l'importation, exportez un fichier consolidé lorsque vous en avez besoin, et vous pouvez facultativement simuler l'API, exécuter des scénarios de test et publier la documentation à partir de la même source. swagger-cli ne faisait que deux choses. Apidog couvre le reste du cycle de vie.

Choisissez en fonction de l'adéquation, pas du battage médiatique. Si vous voulez un linter et un bundleur légers et configurables que vous exécutez uniquement depuis le terminal, Redocly gagne. Si vous préférez avoir une seule plateforme pour la conception, la simulation, les tests et la documentation au lieu de combiner plusieurs outils, Apidog gagne.

Ce que faisait swagger-cli et ce que fait Apidog CLI

swagger-cli n'avait que deux commandes :

C'est tout l'outil. Il ne faisait pas de linting avec des règles de style, ne générait pas de documentation, n'exécutait pas de tests, ni ne simulait quoi que ce soit.

Apidog CLI mappe ces deux tâches sur deux de ses commandes, puis va plus loin :

Un point précis pour que le mappage reste honnête : Apidog valide la structure à l'importation, mais ce n'est pas un linter de guide de style configurable. Il n'y a pas de apidog lint ni de jeux de règles personnalisés. Si vous vous appuyiez sur un linting strict, cette partie ne se transpose pas, et la section Ce que vous gagnez explique comment le gérer.

Installation et connexion

Apidog CLI est livré sous forme de package npm. Installez-le globalement :

npm install -g apidog-cli@latest

Ensuite, authentifiez-vous avec un jeton d'accès :

apidog login --with-token <TOKEN>

Vous obtenez le jeton depuis l'application ou le web Apidog : cliquez sur votre avatar, allez dans Paramètres du compte, puis Jeton d'accès API, et générez-en un. La CLI le stocke dans ~/.apidog/config.toml. Traitez-le comme n'importe quel autre secret. Ne l'imprimez pas dans les logs et ne le commettez pas dans votre dépôt.

Si vous souhaitez tous les drapeaux et une exploration plus approfondie, le guide complet d'Apidog CLI et la documentation officielle d'Apidog CLI couvrent toute la surface. Pour cette migration, l'installation et la connexion sont tout ce dont vous avez besoin pour commencer.

Table de correspondance des commandes

Voici la traduction directe de swagger-cli vers Apidog CLI. La seule différence structurelle : Apidog fonctionne avec un projet, donc la plupart des flux sont "import-then-export" plutôt qu'une seule commande sur un fichier indépendant.

Commande swagger-cli Équivalent Apidog CLI Ce qui change
swagger-cli validate openapi.yaml apidog import --project <id> --format openapi --file ./openapi.yaml Valide la spécification à l'importation ; les spécifications invalides font échouer la commande
swagger-cli bundle openapi.yaml -o out.json apidog import ... puis apidog export --project <id> --format openapi --output ./out.json Le regroupement devient une exportation du projet ; les $refs sont déjà résolus à l'importation
swagger-cli bundle -t yaml apidog export --project <id> --format openapi --output ./out.yaml Le format de sortie suit le fichier que vous écrivez
(pas d'équivalent) apidog export --project <id> --format openapi --output ./out.json --oas-version 3.1 Mettre à niveau une spécification 2.0 ou 3.0 vers 3.1 à l'exportation
(pas d'équivalent) apidog export --project <id> --format html --output ./docs.html Émettre une documentation HTML autonome
(pas d'équivalent) apidog export --project <id> --format markdown --output ./docs.md Émettre une documentation Markdown
(pas d'équivalent) apidog run --project <id> -t <scenarioId> -e <envId> -r junit Exécuter des tests API en CI

Les deux cellules les plus importantes pour la migration sont les deux premières lignes. Tout ce qui se trouve en dessous sont des capacités que swagger-cli n'a jamais eues. L'indicateur --oas-version est la mise à niveau la plus claire : swagger-cli pouvait regrouper un fichier Swagger 2.0, mais il ne pouvait pas le transformer en OpenAPI 3.1. Apidog le peut, à l'exportation, ce qui est pratique lorsque vous modernisez un ancien contrat. Si votre objectif est spécifiquement la production de documentation, exporter OpenAPI vers Markdown explore ce format plus en profondeur.

Migration étape par étape

Voici le chemin complet d'une configuration swagger-cli vers un flux Apidog fonctionnel.

1. Obtenez l'ID de votre projet. Créez ou ouvrez un projet dans l'application Apidog. L'ID du projet apparaît dans les paramètres du projet et dans l'URL. Vous le passerez à chaque commande CLI via --project.

2. Importez la spécification racine. Dirigez Apidog vers le fichier d'entrée de votre définition. Les spécifications multi-fichiers avec des pointeurs $ref se résolvent automatiquement, vous importez donc la racine et Apidog extrait le reste :

apidog import --project 123456 --format openapi --file ./openapi.yaml

Si la spécification est mal formée ou si un $ref est non résolu, l'importation échoue. Cet échec est votre porte de validation, le même travail que swagger-cli validate effectuait, maintenant intégré à l'ingestion.

3. Vérifiez dans l'application. Ouvrez le projet et confirmez que vos points de terminaison, schémas et paramètres ont été correctement importés. Cette vérification visuelle n'a pas d'équivalent dans swagger-cli, et elle vaut la peine d'être effectuée une fois pendant la migration pour confirmer que l'importation a fait ce que vous attendiez.

4. Exportez le fichier consolidé. Lorsque vous avez besoin d'un seul fichier plat (pour un outil en aval, un générateur de client ou un artefact), exportez-le. Choisissez la version OpenAPI que vous souhaitez :

apidog export --project 123456 --format openapi --output ./openapi.json --oas-version 3.1

Cela remplace swagger-cli bundle. Les pointeurs $ref étaient déjà résolus à l'importation, donc l'exportation est votre sortie consolidée en un seul fichier.

5. Intégrez-le à la CI. Remplacez votre ancienne étape swagger-cli par l'importation (validation à l'ingestion) et l'exportation (bundle), et ajoutez une exécution de test si vous avez des scénarios. La section suivante contient un exemple complet pour GitHub Actions.

Exemple de CI avec GitHub Actions

Ce workflow installe la CLI, se connecte avec un jeton provenant des secrets du dépôt, importe la spécification pour la valider, exporte un artefact consolidé, puis exécute des scénarios de test avec le rapporteur JUnit afin qu'un test échouant fasse échouer la vérification et bloque la PR.

name: Vérification de la spécification API

on:
  pull_request:
    branches: [main]

jobs:
  apidog:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Installer Apidog CLI
        run: npm install -g apidog-cli@latest

      - name: Se connecter
        run: apidog login --with-token ${{ secrets.APIDOG_ACCESS_TOKEN }}

      - name: Importer la spécification (valide à l'importation)
        run: apidog import --project 123456 --format openapi --file ./openapi.yaml

      - name: Exporter la spécification consolidée
        run: apidog export --project 123456 --format openapi --output ./dist/openapi.json --oas-version 3.1

      - name: Exécuter les scénarios de test
        run: apidog run --project 123456 -t 7890 -e 4567 -r "cli,junit" --out-dir ./reports

Stockez le jeton sous le nom APIDOG_ACCESS_TOKEN dans les secrets de votre dépôt afin qu'il n'apparaisse jamais dans les logs. Le rapporteur -r "cli,junit" écrit un fichier XML JUnit que votre CI peut afficher comme rapport de test, et un scénario échouant renvoie un code de sortie non nul qui bloque la fusion. Pour des modèles de pipeline plus approfondis, consultez le guide CI/CD d'Apidog CLI, et pour la configuration spécifique au runner, la procédure pas à pas d'Apidog CLI avec GitHub Actions.

Ce que vous gagnez au-delà de la validation et du regroupement

C'est là que la migration est payante, et où l'honnêteté est la plus importante.

Serveurs de simulation. Une fois votre spécification dans un projet, Apidog peut servir des réponses simulées à partir de celle-ci. Vous pouvez développer un frontend contre l'API avant que le backend n'existe. swagger-cli n'a jamais touché au comportement d'exécution.

Scénarios de test automatisés. apidog run exécute de véritables requêtes contre une API en cours d'exécution et effectue des assertions sur les réponses. Vous construisez visuellement des scénarios dans l'application, puis les exécutez sans interface graphique dans la CI. Cela comble l'écart laissé béant par swagger-cli : une spécification valide vous indique que le contrat est bien formé, pas que l'implémentation y correspond.

Documentation hébergée et exportée. apidog export --format html ou --format markdown produit de la documentation directement à partir de la même source. Aucune étape de création de documentation séparée à maintenir.

Maintenant, la limite honnête. Apidog CLI ne dispose pas d'un linter de guide de style configurable et "code-first" avec des jeux de règles personnalisés. Il valide la structure à l'importation, mais vous ne pouvez pas créer de règles de style Spectral ou Redocly via la CLI, et il n'y a pas de commande apidog lint. Si votre ancienne configuration s'appuyait sur un linting lourd (nommage cohérent, descriptions requises, exemples sur chaque réponse), conservez un linter dédié dans la boucle. Associez Apidog à Spectral ou Redocly pour cela, et exécutez-le comme une étape de CI séparée. Le guide de configuration du linter OpenAPI explique comment en intégrer un. Utiliser les deux n'est pas une contradiction : linting avec un outil spécialisé, puis gestion du cycle de vie dans Apidog.

bouton

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API