Wenn Sie eine API über die Befehlszeile simulieren, ist die Lizenz genauso wichtig wie die Feature-Liste. Ein Mock-Server, dessen Quellcode Sie lesen, den Sie selbst hosten und in CI ohne Lizenzanzahl ausführen können, unterscheidet sich stark von einem gehosteten SaaS-Mock hinter einem Login. Dieser Leitfaden behandelt die Open-Source-Seite: Tools, die Sie klonen, inspizieren und kostenlos ausführen können.
Jedes hier aufgeführte Tool ist quelloffen unter einer permissiven Lizenz (MIT oder Apache-2.0) verfügbar, befindet sich in einem öffentlichen GitHub-Repository und kann ohne Konto selbst gehostet werden. Das ist der Filter. Wenn Sie kleinere, eigenständige Binärdateien suchen, die nach Startgeschwindigkeit und Installationsgröße geordnet sind, lesen Sie stattdessen die begleitenden leichten Mock-Server-Empfehlungen; diese Liste konzentriert sich auf Quellcode und Selbst-Hosting, sodass auch eine schwerere, selbst hostbare Plattform einen Platz finden kann.
Für jedes Tool erhalten Sie die Lizenz, den einen Installations- und Ausführungsbefehl, der seine Funktionsweise belegt, wofür es am besten geeignet ist und wo es Schwächen hat. Wenn Sie ein breiteres Spektrum einschließlich kommerzieller Optionen wünschen, bieten der Überblick über die besten API-Mock-Tools und der Übersicht der REST API Mocking Tools eine umfassendere Darstellung.
Eine kurze, ehrliche Anmerkung vor der Liste. Apidog ist kein Open Source; es ist eine Freemium-Kommerzplattform. Es erscheint einmal am Ende als integrierte Alternative zu diesen Tools, klar gekennzeichnet, nicht als Open-Source-Eintrag. Alles in den unten nummerierten Abschnitten ist tatsächlich Open Source.
Was ein CLI-Mock-Tool zu Open Source macht
Drei Dinge entscheiden, ob ein Tool auf diese Liste gehört.
Lizenz. Der Quellcode muss unter einer permissiven Lizenz öffentlich sein. Jede hier genannte Wahl ist MIT oder Apache-2.0, sodass Sie sie lesen, forken und in Ihrem eigenen Produkt ohne Lizenzgebühren oder Benutzerbeschränkungen verwenden können.
Selbst hostbar. Sie betreiben es auf Ihrem Laptop, in einem Container oder auf Ihrem eigenen Server. Keine gehostete Steuerungsebene, keine "Telefonzentrale", keine Kontobeschränkung. Das sorgt dafür, dass ein Mock in einem isolierten CI-Runner nutzbar bleibt.
Offen gepflegt. Ein öffentliches GitHub-Repository mit echter Commit-Historie, Issues und Releases. Sterne sind ein grobes Signal; neuere Commits und getaggte Releases sind die besseren Indikatoren.
Beachten Sie, was nicht auf der Liste steht: rohe Geschwindigkeit oder Installationsgröße. Das ist der leichtgewichtige Ansatz. Hier ist eine große, containerbasierte, selbst hostbare Plattform zulässig, solange der Quellcode offen und die Lizenz frei ist.
Prism (Stoplight)
Prism verwandelt eine OpenAPI- oder Postman-Datei in einen Live-Mock-Server. Zeigen Sie auf eine Spezifikation, und es liefert Beispielantworten, validiert eingehende Anfragen anhand des Schemas und kann als Validierungs-Proxy vor einer echten API ausgeführt werden. Lizenz: Apache-2.0. Repo: stoplightio/prism.
npm install -g @stoplight/prism-cli
prism mock https://raw.githubusercontent.com/stoplightio/prism/master/examples/petstore.oas2.yaml
Dieser Befehl startet einen Mock auf http://127.0.0.1:4010, der vollständig von der Spezifikation gesteuert wird. GET /pets gibt das Beispiel aus Ihrem OpenAPI-Dokument zurück; senden Sie eine fehlerhafte Nutzlast, und Prism teilt Ihnen mit, welchen Teil des Schemas Sie verletzt haben.
Am besten geeignet für: Spezifikationsgesteuertes Contract Mocking, bei dem die OpenAPI-Datei die einzige Quelle der Wahrheit ist. Der Validierungs-Proxy-Modus ist herausragend; er erkennt Abweichungen zwischen Ihrer Spezifikation und Ihrer echten API.
Einschränkungen: Antworten stammen aus Ihren Beispielen und dem Schema, daher sind Mocks nur so reichhaltig wie die Spezifikation. Es gibt kein integriertes zustandsbehaftetes Verhalten (kein "erstellen und dann zurücklesen"). Es ist ein Node-Tool, daher benötigen Sie eine Node-Runtime.
Mockoon CLI
Mockoon ist am bekanntesten für seine Desktop-App, aber die CLI liefert dieselbe Engine ohne GUI, gebaut für CI und Selbst-Hosting. Sie entwerfen eine Umgebung (in der App oder manuell) oder übergeben eine OpenAPI-Datei, und diese wird als Mock bereitgestellt. Lizenz: MIT. Repo: mockoon/mockoon.
npm install -g @mockoon/cli
mockoon-cli start --data ./environment.json --port 3000
Sie können auch direkt mit --data ./openapi.yaml von einer OpenAPI-Datei starten. Fügen Sie --watch hinzu, um bei Dateiänderungen neu zu laden, und --log-transaction, um vollständige Anfrage-/Antwort-Logs auszugeben.
Am besten geeignet für: Umfangreiche, regelbasierte Antworten ohne Code schreiben zu müssen. Mockoon unterstützt Response-Templating, bedingte Regeln und den Proxy-Modus, sodass ein Endpunkt verschiedene Bodies basierend auf der Anfrage zurückgeben kann. Das visuelle Design in der App und der Headless-Betrieb über die CLI ist eine saubere Trennung.
Einschränkungen: Der angenehmste Erstellungsweg ist die Desktop-App, daher ist das manuelle Bearbeiten des Environment-JSONs umständlich. Die Syntax für dynamisches Templating hat ihre eigene Lernkurve.
json-server
json-server ist der schnellste Weg, eine REST-API zu faken. Geben Sie ihm eine JSON-Datei, und er generiert vollständige CRUD-Routen (GET, POST, PUT, PATCH, DELETE) mit echter Persistenz zurück in diese Datei. Lizenz: MIT. Repo: typicode/json-server.
npx json-server db.json
Mit einer db.json, die ein Top-Level-Array "posts" enthält, erhalten Sie sofort GET /posts, GET /posts/1, POST /posts und den Rest, plus Filterung, Sortierung und Paginierung über Abfrageparameter. POSTen Sie einen neuen Datensatz, und er wird in die Datei geschrieben; lesen Sie ihn zurück, und er ist da.
Am besten geeignet für: Frontend-Entwicklung, bevor das Backend existiert. Es ist sofort zustandsbehaftet, was Prism und die meisten spezifikationsgesteuerten Mocks nicht sind. Keine Konfiguration, und npx bedeutet, dass Sie es nicht einmal installieren müssen.
Einschränkungen: Es ist voreingenommen in Bezug auf die REST-Form, daher passt es nicht zu einer beliebigen benutzerdefinierten API. Kein OpenAPI-Import; die JSON-Datei ist der Vertrag. Nicht für Lasttests oder produktionsähnliches Verhalten gedacht.
WireMock
WireMock ist das Schwergewicht des Open-Source-HTTP-Mockings mit Millionen von Downloads pro Monat. Es läuft als eigenständiger Prozess, der über eine JSON-Admin-API oder aus JSON-Stub-Dateien konfiguriert wird, und es behandelt Anfrageabgleich, Response-Templating, zustandsbehaftete Szenarien, Fehlereinleitung und Aufnahme-Wiedergabe. Lizenz: Apache-2.0. Repo: 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"}}'
Die erste Zeile startet WireMock; die zweite registriert einen Stub über seine Admin-API. Jetzt gibt curl http://localhost:8080/hello world zurück. Sie können auch Stub-Dateien in einem mappings/-Verzeichnis ablegen und dieses in den Container mounten.
Am besten geeignet für: Komplexe Testszenarien. Zustandsbehaftetes Verhalten, Verzögerungen und Fehler, um einen unzuverlässigen Drittanbieter zu simulieren, sowie Proxy-plus-Record, um eine echte API aufzuzeichnen und später wiederzugeben. Dies ist das Tool, wenn Ihr Mock sich wie das zu testende Original verhalten muss.
Einschränkungen: Es ist ein JVM-Tool, daher sind der Container oder eine Java-Laufzeitumgebung die Eintrittsbarriere. Die Konfigurationsfläche ist groß; einfache Mocks fühlen sich wie Overkill an. Es gibt keinen einzelnen "Spezifikation lesen und los"-Befehl, wie ihn Prism hat.
MockServer
MockServer ist ein HTTP(S)-Mock und Proxy auf einem einzigen Port, der direkt auf Integrationstests abzielt. Er simuliert APIs, kann Live-Traffic proxen und aufzeichnen und ermöglicht das Einschleusen von Fehlern, um zu testen, wie Ihr Client damit umgeht. Neuere Versionen unterstützen HTTP/2, gRPC und WebSocket. Lizenz: Apache-2.0. Repo: 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\"}"}}'
Der PUT-Befehl registriert eine „Erwartung“; danach gibt curl http://localhost:1080/order Ihr JSON zurück. Die Clients von MockServer (Java, JavaScript, Ruby und andere) ermöglichen es Ihnen, dieselben Erwartungen direkt aus Ihrem Testcode anstatt über curl zu setzen.
Am besten geeignet für: Mocking und Proxying am selben Ort, plus Fehlereinleitung. Wenn Sie überprüfen müssen, ob eine bestimmte Anfrage eine bestimmte Anzahl von Malen gestellt wurde, ist die Verifizierungs-API von MockServer dafür ausgelegt. Gut geeignet für JVM-lastige Stacks. Sehen Sie sich unseren Artikel zu MockServer-Alternativen an, falls es nicht ganz die richtige Form hat.
Einschränkungen: Wie WireMock ist es JVM-basiert und das Erwartungs-JSON ist ausführlich. Die Überschneidung mit WireMock ist real; wählen Sie eines basierend darauf, welche Client-Bibliothek zu Ihrem Test-Stack passt.
Microcks
Microcks ist die Plattform-Wahl und ein Inkubationsprojekt der Cloud Native Computing Foundation. Es verwandelt OpenAPI, AsyncAPI, gRPC, GraphQL, Postman-Sammlungen und SoapUI-Projekte in Live-Mocks und verwendet dieselben Verträge wieder, um Konformitätstests gegen Ihre reale Implementierung durchzuführen. Es deckt ereignisgesteuerte und asynchrone Protokolle ab, nicht nur HTTP. Lizenz: Apache-2.0. Repo: microcks/microcks.
docker run -d --name microcks -p 8585:8080 quay.io/microcks/microcks-uber:latest
Das startet das All-in-One-Image; öffnen Sie http://localhost:8585 und importieren Sie eine Spezifikation, um Mock-Endpunkte zu erhalten. Die begleitende microcks-cli steuert einen laufenden Server von CI aus:
microcks-cli import 'petstore.yaml:true' \
--microcksURL=http://localhost:8585/api \
--keycloakClientId=... --keycloakClientSecret=...
Am besten geeignet für: Teams, die einen verwalteten Katalog von Mocks über viele APIs und Protokolle hinweg wünschen, mit integriertem Vertragstesting. Das asynchrone/ereignisgesteuerte Mocking (Kafka, MQTT und Ähnliche) ist in diesem Bereich selten.
Einschränkungen: Dies ist ein Server, keine einzelne Binärdatei. Ein wichtiger Hinweis: Die microcks-cli löst Tests aus und importiert Artefakte in einer laufenden Microcks-Instanz; sie dient selbst nicht als Mock-Server. Die CLI ist also ein Client, und Sie betreiben weiterhin die Plattform. Für einen einmaligen lokalen Mock ist das aufwändiger als Prism oder json-server.
Ein ehrlicher Exkurs: Apidog
Apidog ist nicht Open Source und erhält daher hier keinen nummerierten Platz. Aber wenn Sie bemerkt haben, dass die oben genannten Tools verschiedene Bereiche lösen (spezifikationsgesteuerte Mocks, zustandsbehaftetes CRUD, Vertragstests) und Sie diese lieber nicht zusammenfügen möchten, ist es eine Erwähnung wert. Apidog ist eine Freemium-Plattform, deren kostenlose Stufe Mocking beinhaltet, und apidog mock in der apidog-cli ermöglicht es Ihnen, Mock-Erwartungen vom Terminal aus neben Design, Tests und Dokumentation in einem Projekt zu verwalten. Smart Mock generiert automatisch realistische Feldwerte aus Ihrem Schema, sodass Sie keine Beispiel-Bodies manuell schreiben müssen.
Der Kompromiss ist klar: Sie erhalten einen integrierten Workflow und eine kostenlose Stufe anstelle von Open Source und Selbst-Hosting. Wenn Open Source oder isoliertes Selbst-Hosting eine zwingende Anforderung ist, ist eines der sechs oben genannten Tools Ihre Antwort. Wenn ein integrierter Design-zu-Mock-Workflow wichtiger ist, ist Apidog die Alternative zum Zusammenfügen mehrerer Tools.
Wie man wählt
| Tool | Am besten für | Installation | Lizenz | Anmerkungen |
|---|---|---|---|---|
| Prism | Spezifikationsgesteuerte Mocks + Validierungs-Proxy | npm i -g @stoplight/prism-cli |
Apache-2.0 | OpenAPI/Postman rein, Mock raus; zustandslos |
| Mockoon CLI | Regelbasierte Antworten, kein Code | npm i -g @mockoon/cli |
MIT | In der App entwerfen, headless ausführen |
| json-server | Zustandsbehaftetes Fake-REST für Frontend | npx json-server db.json |
MIT | Volles CRUD mit Persistenz, keine Konfiguration |
| WireMock | Komplexe Testszenarien, Fehler | docker run wiremock/wiremock |
Apache-2.0 | JVM; Aufnahme-Wiedergabe; zustandsbehaftet |
| MockServer | Mock + Proxy + Verifizierung | docker run mockserver/mockserver |
Apache-2.0 | JVM; HTTP/2, gRPC, WebSocket |
| Microcks | Verwalteter Multi-API-/Protokoll-Katalog | docker run microcks-uber |
Apache-2.0 | CNCF-Plattform; CLI ist ein Client, kein Server |
| Apidog (nicht OSS) | Integriertes Design-zu-Mock | npm i -g apidog-cli |
Freemium | Kostenlose Stufe; apidog mock in einem Projekt |
Wählen Sie nach Form, nicht nach Popularität. Für einen Mock, der Ihre OpenAPI-Datei liest und diese durchsetzt, beginnen Sie mit Prism. Für zustandsbehaftetes CRUD, bevor das Backend existiert, punktet json-server mit Geschwindigkeit. Für umfangreiche Testszenarien mit Fehlern und Aufnahme-Wiedergabe, WireMock oder MockServer; wählen Sie nach Client-Bibliothek. Für einen gemeinsamen, Multi-Protokoll-Katalog mit Vertragstests, Microcks. Welches Format zu welcher Situation passt, zeigt der Leitfaden zu den API-Mocking-Anwendungsfällen, der Tools Szenarien zuordnet.
Zusammenfassung
Open-Source CLI-Mock-Tools bieten Ihnen einen Mock-Server, den Sie kostenlos lesen, selbst hosten und in CI ausführen können. Prism und json-server decken die gängigen Fälle mit einem Befehl ab; WireMock und MockServer bewältigen die anspruchsvollen Testszenarien; Microcks skaliert dies zu einem verwalteten Katalog über verschiedene Protokolle hinweg. Alle sechs sind MIT oder Apache-2.0, alle selbst hostbar, alle auf öffentlichem GitHub.
Wenn Sie Mocks lieber direkt neben Ihrem API-Design, Tests und Dokumentationen verwalten möchten, ohne separate Tools miteinander zu verbinden, laden Sie Apidog herunter und probieren Sie apidog mock in der kostenlosen Stufe aus. Es ist kein Open Source, aber es ist ein Ort, um den gesamten Zyklus von der Befehlszeile bis zum CI auszuführen.
