Lorsque vous simulez une API à partir de la ligne de commande, la licence est tout aussi importante que la liste des fonctionnalités. Un serveur de simulation dont vous pouvez lire le code source, auto-héberger et exécuter en CI sans compter les postes est très différent d'une simulation SaaS hébergée derrière une connexion. Ce guide couvre le côté open-source : des outils que vous pouvez cloner, inspecter et exécuter gratuitement.
Chaque outil présenté ici est disponible sous une licence permissive (MIT ou Apache-2.0), réside sur un dépôt GitHub public et peut être auto-hébergé sans compte. C'est le filtre. Si vous souhaitez des choix plus petits, à binaire unique, classés par vitesse de démarrage et taille d'installation, lisez plutôt les choix de serveurs de simulation légers ; cette liste concerne le code source et l'auto-hébergement, donc une plateforme auto-hébergeable plus lourde peut toujours y trouver sa place.
Pour chaque outil, vous obtenez la licence, la commande d'installation et d'exécution qui prouve son fonctionnement, ses points forts et ses limites. Si vous souhaitez un aperçu plus large incluant des options commerciales, les meilleurs outils de simulation d'API et la présentation des outils de simulation d'API REST sont plus exhaustifs.
Une note rapide et honnête avant la liste. Apidog n'est pas open source ; c'est une plateforme commerciale freemium. Il apparaît une fois à la fin comme une alternative intégrée à ces outils, clairement étiqueté, et non comme une entrée open-source. Tout ce qui figure dans les sections numérotées ci-dessous est véritablement open source.
Qu'est-ce qui rend un outil de simulation CLI open source
Trois éléments décident si un outil appartient à cette liste.
Licence. Le code source doit être public sous une licence permissive. Chaque sélection ici est MIT ou Apache-2.0, vous pouvez donc le lire, le forker et l'intégrer dans votre propre produit sans frais de licence ni de comptage de postes.
Auto-hébergeable. Vous l'exécutez sur votre ordinateur portable, dans un conteneur ou sur votre propre serveur. Pas de plan de contrôle hébergé, pas de "téléphone-maison", pas de portail de compte. C'est ce qui rend une simulation utilisable dans un exécuteur CI isolé (air-gapped).
Maintenu en public. Un dépôt GitHub public avec un historique de commits réel, des problèmes et des versions. Les étoiles sont un signal approximatif ; les commits récents et les versions taguées sont le meilleur indicateur.
Notez ce qui ne figure pas sur la liste : la vitesse brute ou la taille d'installation. Ce sont les critères de l'approche légère. Ici, une grande plateforme auto-hébergeable basée sur des conteneurs est admissible tant que le code source est ouvert et que la licence est gratuite.
Prism (Stoplight)
Prism transforme un fichier OpenAPI ou Postman en un serveur de simulation en direct. Pointez-le vers une spécification et il sert des exemples de réponses, valide les requêtes entrantes par rapport au schéma, et peut fonctionner comme un proxy de validation devant une API réelle. Licence : Apache-2.0. Dépôt : stoplightio/prism.
npm install -g @stoplight/prism-cli
prism mock https://raw.githubusercontent.com/stoplightio/prism/master/examples/petstore.oas2.yaml
Cette commande démarre une simulation sur http://127.0.0.1:4010 entièrement pilotée par la spécification. GET /pets renvoie l'exemple de votre document OpenAPI ; envoyez une charge utile incorrecte et Prism vous indiquera quelle partie du schéma vous avez violée.
Idéal pour : la simulation de contrat pilotée par spécification où le fichier OpenAPI est la source de vérité. Le mode proxy de validation est exceptionnel ; il détecte les décalages entre votre spécification et votre API réelle.
Limites : les réponses proviennent de vos exemples et de votre schéma, donc les simulations ne sont aussi riches que la spécification. Il n'y a pas de comportement statique intégré (pas de "créer puis relire"). C'est un outil Node, vous avez donc besoin d'un environnement d'exécution Node.
Mockoon CLI
Mockoon est surtout connu pour son application de bureau, mais l'interface CLI embarque le même moteur sans interface graphique, conçu pour la CI et l'auto-hébergement. Vous concevez un environnement (dans l'application ou manuellement) ou lui donnez un fichier OpenAPI, et il sert cette simulation. Licence : MIT. Dépôt : mockoon/mockoon.
npm install -g @mockoon/cli
mockoon-cli start --data ./environment.json --port 3000
Vous pouvez également démarrer directement à partir d'un fichier OpenAPI avec --data ./openapi.yaml. Ajoutez --watch pour recharger les modifications de fichier et --log-transaction pour imprimer les journaux complets des requêtes/réponses.
Idéal pour : les réponses riches et basées sur des règles sans écrire de code. Mockoon prend en charge le templating de réponse, les règles conditionnelles et le mode proxy, de sorte qu'un point de terminaison peut renvoyer différents corps en fonction de la requête. Concevoir visuellement dans l'application et exécuter sans tête via la CLI est une séparation nette.
Limites : le chemin d'auteur le plus agréable est l'application de bureau, donc l'édition manuelle du JSON de l'environnement est délicate. La syntaxe de templating dynamique a sa propre courbe d'apprentissage.
json-server
json-server est le moyen le plus rapide de simuler une API REST. Donnez-lui un fichier JSON et il génère des routes CRUD complètes (GET, POST, PUT, PATCH, DELETE) avec une persistance réelle vers ce fichier. Licence : MIT. Dépôt : typicode/json-server.
npx json-server db.json
Avec un db.json qui contient un tableau "posts" de niveau supérieur, vous obtenez immédiatement GET /posts, GET /posts/1, POST /posts, et le reste, ainsi que le filtrage, le tri et la pagination via des paramètres de requête. POSTez un nouvel enregistrement et il est écrit dans le fichier ; relisez-le et il est là.
Idéal pour : le développement frontend avant que le backend n'existe. Il est statique dès la sortie de la boîte, ce que Prism et la plupart des simulations basées sur des spécifications ne sont pas. Zéro configuration, et npx signifie que vous n'avez même pas besoin de l'installer.
Limites : il est dogmatique quant à la forme REST, il ne correspondra donc pas à une API personnalisée arbitraire. Pas d'importation OpenAPI ; le fichier JSON est le contrat. Non destiné aux tests de charge ou à un comportement de type production.
WireMock
WireMock est le poids lourd de la simulation HTTP open-source, avec des millions de téléchargements par mois. Il fonctionne comme un processus autonome configuré via une API d'administration JSON ou à partir de fichiers de stub JSON, et il gère la correspondance de requêtes, le templating de réponses, les scénarios avec état, l'injection de fautes et l'enregistrement-relecture. Licence : Apache-2.0. Dépôt : wiremock/wiremock.
docker run -it --rm -p 8080:8080 wiremock/wiremock:latest
curl -X POST http://localhost:8080/__admin/mappings \
-H 'Content-Type: application/json' \
-d '{"request":{"method":"GET","url":"/hello"},"response":{"status":200,"body":"world"}}'
La première ligne démarre WireMock ; la seconde enregistre un stub via son API d'administration. Maintenant curl http://localhost:8080/hello renvoie world. Vous pouvez également déposer des fichiers de stub dans un répertoire mappings/ et le monter dans le conteneur.
Idéal pour : les scénarios de test complexes. Comportement avec état, délais et fautes pour simuler un tiers instable, et proxy-plus-enregistrement pour capturer une API réelle et la rejouer plus tard. C'est l'outil lorsque votre simulation doit se comporter comme la chose réelle sous test.
Limites : c'est un outil JVM, donc le conteneur ou un environnement d'exécution Java est le prix d'entrée. La surface de configuration est grande ; les simulations simples semblent exagérées. Il n'y a pas de commande unique "lire une spécification et démarrer" comme Prism.
MockServer
MockServer est un serveur de simulation HTTP(S) et un proxy sur un seul port, destiné directement aux tests d'intégration. Il simule des API, peut proxifier et enregistrer le trafic en direct, et vous permet d'injecter des erreurs pour tester comment votre client les gère. Les versions récentes ajoutent le support HTTP/2, gRPC et WebSocket. Licence : Apache-2.0. Dépôt : mock-server/mockserver.
docker run -d --rm -p 1080:1080 mockserver/mockserver
curl -X PUT 'http://localhost:1080/mockserver/expectation' \
-H 'Content-Type: application/json' \
-d '{"httpRequest":{"path":"/order"},"httpResponse":{"body":"{\"status\":\"ok\"}"}}'
Le PUT enregistre une "attente" ; après cela, curl http://localhost:1080/order renvoie votre JSON. Les clients de MockServer (Java, JavaScript, Ruby et autres) vous permettent de définir les mêmes attentes depuis votre code de test au lieu d'utiliser curl.
Idéal pour : simuler et proxifier au même endroit, plus l'injection d'erreurs. Si vous devez vérifier qu'une requête spécifique a été faite un certain nombre de fois, l'API de vérification de MockServer est conçue pour cela. Bon choix pour les piles lourdes en JVM. Consultez notre article sur les alternatives à MockServer s'il ne correspond pas tout à fait à vos besoins.
Limites : comme WireMock, il est basé sur JVM et le JSON d'attente est verbeux. Le chevauchement avec WireMock est réel ; choisissez l'un en fonction de la bibliothèque cliente qui convient à votre pile de tests.
Microcks
Microcks est le choix de plateforme, et c'est un projet incubateur de la Cloud Native Computing Foundation. Il transforme les collections OpenAPI, AsyncAPI, gRPC, GraphQL, Postman et les projets SoapUI en simulations en direct, et il réutilise ces mêmes contrats pour exécuter des tests de conformité sur votre implémentation réelle. Il couvre les protocoles événementiels et asynchrones, pas seulement HTTP. Licence : Apache-2.0. Dépôt : microcks/microcks.
docker run -d --name microcks -p 8585:8080 quay.io/microcks/microcks-uber:latest
Cela exécute l'image tout-en-un ; ouvrez http://localhost:8585 et importez une spécification pour obtenir des points de terminaison de simulation. Le microcks-cli compagnon pilote un serveur en cours d'exécution depuis la CI :
microcks-cli import 'petstore.yaml:true' \
--microcksURL=http://localhost:8585/api \
--keycloakClientId=... --keycloakClientSecret=...
Idéal pour : les équipes qui souhaitent un catalogue gouverné de simulations à travers de nombreuses API et protocoles, avec des tests de contrat intégrés. La simulation asynchrone/événementielle (Kafka, MQTT, et autres) est rare dans cet espace.
Limites : il s'agit d'un serveur, pas d'un binaire unique. Une mise en garde importante : le microcks-cli déclenche des tests et importe des artefacts sur une instance Microcks en cours d'exécution ; il ne sert pas de simulations par lui-même. La CLI est donc un client, et vous exécutez toujours la plateforme. Pour une simulation locale unique, c'est plus lourd que Prism ou json-server.
Un aparté honnête : Apidog
Apidog n'est pas open source, il n'a donc pas de place numérotée ici. Mais si vous avez remarqué que les outils ci-dessus résolvent différentes parties (simulations basées sur les spécifications, CRUD avec état, tests de contrat) et que vous préférez ne pas les assembler, cela vaut la peine d'être mentionné. Apidog est une plateforme freemium dont le niveau gratuit inclut la simulation, et apidog mock dans l'apidog-cli vous permet de gérer les attentes de simulation depuis le terminal, en plus de la conception, des tests et de la documentation dans un seul projet. La simulation intelligente génère automatiquement des valeurs de champ réalistes à partir de votre schéma, vous n'avez donc pas à écrire manuellement des corps d'exemple.
Le compromis est clair : vous obtenez un flux de travail intégré et un niveau gratuit au lieu de l'open source et de l'auto-hébergement. Si l'open source ou l'auto-hébergement isolé est une exigence stricte, l'un des six outils ci-dessus est votre réponse. Si une boucle intégrée de la conception à la simulation est plus importante, Apidog est l'alternative à l'assemblage de plusieurs outils.
Comment choisir
| Outil | Idéal pour | Installation | Licence | Notes |
|---|---|---|---|---|
| Prism | Simulations pilotées par spécification + proxy de validation | npm i -g @stoplight/prism-cli |
Apache-2.0 | OpenAPI/Postman en entrée, simulation en sortie ; sans état |
| Mockoon CLI | Réponses basées sur des règles, sans code | npm i -g @mockoon/cli |
MIT | Concevoir dans l'application, exécuter en mode sans tête |
| json-server | Faux REST avec état pour le frontend | npx json-server db.json |
MIT | CRUD complet avec persistance, zéro config |
| WireMock | Scénarios de test complexes, erreurs | docker run wiremock/wiremock |
Apache-2.0 | JVM ; enregistrement-relecture ; avec état |
| MockServer | Simulation + proxy + vérification | docker run mockserver/mockserver |
Apache-2.0 | JVM ; HTTP/2, gRPC, WebSocket |
| Microcks | Catalogue multi-API/protocole gouverné | docker run microcks-uber |
Apache-2.0 | Plateforme CNCF ; la CLI est un client, pas un serveur |
| Apidog (pas OSS) | Conception-à-simulation intégrée | npm i -g apidog-cli |
Freemium | Niveau gratuit ; apidog mock dans un seul projet |
Choisissez par forme, pas par popularité. Pour une simulation qui lit votre fichier OpenAPI et l'applique, commencez par Prism. Pour un CRUD avec état avant que le backend n'atterrisse, json-server gagne en vitesse. Pour des scénarios de test riches avec des erreurs et l'enregistrement-relecture, WireMock ou MockServer ; choisissez en fonction de la bibliothèque cliente. Pour un catalogue partagé, multi-protocole avec des tests de contrat, Microcks. Pour savoir quelle forme convient à quelle situation, le guide des cas d'utilisation de la simulation d'API met en correspondance les outils et les scénarios.
En résumé
Les outils de simulation CLI open-source vous offrent un serveur de simulation que vous pouvez lire, auto-héberger et exécuter en CI gratuitement. Prism et json-server couvrent les cas courants en une seule commande ; WireMock et MockServer gèrent les scénarios de test difficiles ; Microcks le met à l'échelle d'un catalogue gouverné à travers les protocoles. Les six sont sous licence MIT ou Apache-2.0, tous auto-hébergeables, tous sur GitHub public.
Si vous préférez gérer les simulations à côté de la conception de votre API, de vos tests et de votre documentation sans assembler des outils séparés, téléchargez Apidog et essayez apidog mock sur le niveau gratuit. Ce n'est pas open source, mais c'est un seul endroit pour exécuter la boucle complète de la ligne de commande à la CI.
