DEV Community

Cover image for Die besten schlanken CLI-Tools für API-Mocking
Emre Demir
Emre Demir

Posted on • Originally published at apidog.com

Die besten schlanken CLI-Tools für API-Mocking

Sie benötigen eine simulierte API für Frontend-Entwicklung oder Tests – sofort, lokal und ohne gehosteten Dienst, Docker-Stack oder GUI. Ein schlanker Mock-Server liest eine OpenAPI-Spezifikation oder Datendatei und liefert innerhalb von Sekunden Antworten über localhost.

Apidog noch heute ausprobieren

Die passende Wahl hängt vor allem davon ab, was bereits vorhanden ist:

  • OpenAPI-Spezifikation: Prism oder Mockoon CLI
  • Einfache JSON-Daten: json-server
  • Exakte Request-Matches und Fehlerszenarien: MockServer oder WireMock
  • Mock, Design und Tests in einem Projekt: Apidog CLI

Dieser Leitfaden zeigt sechs CLI-Tools mit direkt ausführbaren Befehlen. Wenn Sie auch GUI- und gehostete Varianten vergleichen möchten, lesen Sie die Übersicht der besten API-Mock-Tools.

Was macht ein CLI-Mock-Tool „schlank“?

„Schlank“ beschreibt vor allem geringe Reibung bis zur ersten Antwort:

  1. Wenig Installation: Idealerweise reicht npx; JVM-Tools benötigen dagegen Java und ein Jar.
  2. Schneller Start: Node-basierte Tools starten typischerweise in deutlich unter einer Sekunde.
  3. Eine Datei, ein Befehl: Eine Spezifikation oder Datendatei sollte genügen.
  4. Terminal-first: Kein Konto, Dashboard oder GUI-Schritt für den lokalen Mock und CI.

Die folgenden Tools sind von minimalem Setup bis zu komplexeren, zustands- oder erwartungsbasierten Szenarien geordnet.

Prism (Stoplight)

Prism stellt eine OpenAPI-Datei direkt als Mock-Server bereit. Wenn Ihre API bereits spezifiziert ist, ist das meist der kürzeste Weg zu vertragsnahen Endpunkten.

npx @stoplight/prism-cli mock ./openapi.yaml
Enter fullscreen mode Exit fullscreen mode

Danach läuft der Server standardmäßig unter:

http://127.0.0.1:4010
Enter fullscreen mode Exit fullscreen mode

Prism verwendet die paths, examples und Schemata Ihrer Spezifikation:

  • Definierte example-Antworten werden zurückgegeben.
  • Ohne Beispiel generiert Prism Antworten aus dem Schema.
  • Eingehende Requests werden gegen die Spezifikation validiert.
  • Ungültige Requests erhalten beispielsweise eine 422, statt unbemerkt akzeptiert zu werden.

Für eine globale Installation:

npm install -g @stoplight/prism-cli
prism mock ./openapi.yaml
Enter fullscreen mode Exit fullscreen mode

Am besten für: Teams mit OpenAPI als Vertragsquelle, die schnell einen spezifikationsnahen Mock benötigen.

Einschränkungen: Prism ist zustandslos. Ein POST speichert keine Daten für einen späteren GET. Die Qualität der Antworten hängt direkt von Beispielen und Schemata in Ihrer Spezifikation ab. Das passt gut zu einem Workflow mit REST-API-Mocking-Tools.

Mockoon CLI

Mockoon CLI führt Mockoon-Umgebungen headless aus. Sie können eine Umgebung aus der Mockoon-Desktop-App exportieren oder direkt eine OpenAPI-Datei verwenden.

npx @mockoon/cli start --data ./mockoon-env.json --port 3000
Enter fullscreen mode Exit fullscreen mode

--data akzeptiert eine Mockoon-Umgebungsdatei oder eine OpenAPI-Datei im JSON- bzw. YAML-Format. Bei älteren Mockoon-Umgebungen übernimmt die CLI die Migration im Speicher und verändert die Originaldatei nicht.

Globale Installation:

npm install -g @mockoon/cli
mockoon-cli start --data ./mockoon-env.json --port 3000
Enter fullscreen mode Exit fullscreen mode

Am besten für: Teams, die Routen visuell in Mockoon erstellen und dieselbe Umgebung in CI oder auf einem Server ohne GUI starten möchten.

Einschränkungen: Komplexe Routen sind komfortabler in der Desktop-App zu erstellen. Wenn Sie Mocks ausschließlich manuell in Dateien pflegen möchten, sind Prism oder json-server oft direkter.

json-server

json-server erzeugt eine REST-API aus einer JSON-Datei. Es ist besonders nützlich, wenn noch keine OpenAPI-Spezifikation existiert und Sie schnell ein funktionierendes CRUD-Backend benötigen.

echo '{ "posts": [{ "id": 1, "title": "hello" }] }' > db.json
npx json-server db.json
Enter fullscreen mode Exit fullscreen mode

Damit ist unter anderem dieser Endpunkt verfügbar:

http://localhost:3000/posts
Enter fullscreen mode Exit fullscreen mode

Die erzeugte API unterstützt REST-Operationen wie:

GET    /posts
POST   /posts
PUT    /posts/:id
PATCH  /posts/:id
DELETE /posts/:id
Enter fullscreen mode Exit fullscreen mode

Ein POST auf /posts schreibt einen Datensatz zurück in db.json. Dadurch erhalten Sie direkt zustandsbehaftetes Verhalten, etwa für einen Create-then-Read-Workflow.

Globale Installation:

npm install -g json-server
json-server db.json
Enter fullscreen mode Exit fullscreen mode

Am besten für: Frontend-Entwicklung und Prototyping, wenn eine REST-API in wenigen Minuten benötigt wird.

Einschränkungen: Das Tool folgt einer ressourcenorientierten REST-Struktur. Für stark angepasste Endpunkte, exakte Header-Matches oder Vertragsvalidierung ist es nicht gedacht. Es bleibt jedoch eine der einfachsten schlanken Mock-Server-Optionen für RESTful APIs.

MockServer

MockServer ist auf präzise Request-Matches ausgelegt. Statt nur eine Spezifikation oder Datenquelle bereitzustellen, definieren Sie Erwartungen für Methode, Pfad, Header, Query-Parameter und Body.

java -jar mockserver-netty-5.15.0-no-dependencies.jar -p 1080
Enter fullscreen mode Exit fullscreen mode

Der Server läuft anschließend auf Port 1080. Erwartungen konfigurieren Sie über die REST-API oder programmatisch. Für Node.js gibt es einen offiziellen Wrapper:

npm install mockserver-node
Enter fullscreen mode Exit fullscreen mode
const mockserver = require('mockserver-node');

mockserver.start_mockserver({
  serverPort: 1080
});
Enter fullscreen mode Exit fullscreen mode

MockServer eignet sich beispielsweise für Tests, in denen Sie gezielt Timeouts, Verzögerungen oder Fehlerantworten simulieren müssen.

Am besten für: Integrationstests mit feingranularer Kontrolle über Requests und Responses.

Einschränkungen: Als JVM-Server benötigt MockServer eine Java-Laufzeit und startet schwergewichtiger als Node-basierte Tools. Die Einrichtung von Erwartungen ist ausführlicher als das Starten eines OpenAPI-Mocks. Wenn Sie Alternativen abwägen, hilft der Vergleich der MockServer-Alternativen.

WireMock (eigenständig)

WireMock ist ein etablierter Mock-Server im Java- und JVM-Ökosystem. Das eigenständige Jar verwendet dieselbe Engine, die auch in JUnit-Tests eingebettet werden kann.

java -jar wiremock-standalone.jar --port 8080
Enter fullscreen mode Exit fullscreen mode

WireMock stellt danach auf Port 8080 bereit. Stubs können aus einem mappings/-Verzeichnis oder über die JSON-API geladen werden.

Ein typisches Verzeichnislayout sieht so aus:

.
├── mappings/
│   └── get-user.json
└── __files/
Enter fullscreen mode Exit fullscreen mode

WireMock kann außerdem echten Traffic aufzeichnen und als Stubs wiedergeben. Das ist hilfreich, wenn Sie eine externe API simulieren möchten, die Sie nicht selbst betreiben. Für CI steht ein offizielles wiremock/wiremock-Docker-Image bereit.

Am besten für: JVM-Teams, die dieselbe Mocking-Engine lokal und in der Testsuite verwenden möchten.

Einschränkungen: WireMock benötigt Java und ist beim Start schwergewichtiger als npx-Tools. Seine Stub-Mappings sind leistungsfähig, aber aufwendiger als ein einfacher JSON-Datenmock. Für browsernahes JavaScript-Mocking lohnt sich auch ein Blick auf Mock Service Worker (MSW)-Alternativen.

Apidog CLI

Prism, json-server, MockServer und WireMock lösen jeweils spezifische Teile des Mockings. Apidog verfolgt einen integrierten Ansatz: API-Design, Mock, Tests und Dokumentation liegen in einem Projekt, während die Apidog CLI das Projekt im Terminal steuert.

Apidog ist nicht Open Source, bietet aber einen kostenlosen Tarif. Es generiert für definierte Endpunkte automatisch intelligente Mock-Antworten, die sich an Feldtypen und Schema-Namen orientieren. Für gezielte Responses können Sie Mock-Erwartungen definieren und per CLI verwalten.

npm install -g apidog-cli
apidog login --with-token <YOUR_TOKEN>
apidog mock --help
Enter fullscreen mode Exit fullscreen mode

Die Befehlsgruppe mock arbeitet mit den Mock-Erwartungen des Projekts. Weitere Befehlsgruppen decken Endpunkte, Schemata, Umgebungen und Testläufe ab. Die CLI gibt strukturiertes JSON aus, einschließlich eines Felds agentHints.nextSteps.

Eine vollständige Übersicht finden Sie in der Anleitung zur Apidog CLI.

Am besten für: Teams, die Spezifikation, Mock und Tests nicht über mehrere separate Tools verteilen möchten.

Einschränkungen: Apidog ist eine Plattform und keine einzelne, dateibasierte Binärdatei. Dafür benötigen Sie ein Projekt und eine Anmeldung. Für einen einmaligen temporären Mock aus einer Datei ist json-server oder Prism schlanker. Wenn Sie Ihre API bereits in Apidog entwerfen, ist der Mock bereits Teil des Workflows.

Apidog herunterladen, um den integrierten Mock-Server und die CLI im eigenen Projekt auszuprobieren.

Wie Sie auswählen

Nutzen Sie diese Entscheidungsregel:

Tool Am besten für Startbefehl Open Source? Hinweise
Prism OpenAPI direkt als Mock bereitstellen npx @stoplight/prism-cli mock openapi.yaml Ja, Apache-2.0 Vertragstreu, zustandslos, Port 4010
Mockoon CLI GUI-erstellte Mocks headless ausführen npx @mockoon/cli start --data mockoon-env.json Ja, MIT Liest Umgebungsdateien oder OpenAPI
json-server REST-API sofort aus JSON erzeugen npx json-server db.json Ja, MIT Zustandsbehafteter CRUD, Port 3000
MockServer Präzise Request-Matches java -jar mockserver-netty-*.jar Ja, Apache-2.0 JVM, npm-Wrapper verfügbar, Port 1080
WireMock Gemeinsame Mocking-Engine für JVM-Entwicklung und Tests java -jar wiremock-standalone.jar Ja, Apache-2.0 Aufzeichnung, Wiedergabe, Docker-Image
Apidog CLI Mock, Spezifikation und Tests in einem Projekt npm install -g apidog-cli Nein, kostenloser Tarif Intelligente Mocks und verwaltete Erwartungen

Die Kurzfassung:

  • Nutzen Sie npx-Tools, wenn Startgeschwindigkeit entscheidend ist.
  • Nutzen Sie JVM-Server, wenn Sie komplexe Matches, Fehlerfälle oder Aufzeichnungen benötigen.
  • Nutzen Sie Apidog, wenn Mocking Teil eines gemeinsamen API-Design- und Testworkflows sein soll.

Wenn Sie grundsätzlich entscheiden möchten, wann Mocking sinnvoll ist, lesen Sie die Übersicht zu API-Mocking-Anwendungsfällen.

Zusammenfassung

Wählen Sie das kleinste Tool, das Ihren konkreten Fall abdeckt:

  • Vorhandene OpenAPI-Spezifikation: Prism oder Mockoon CLI
  • JSON-Daten und schneller CRUD-Mock: json-server
  • Strenge Request-Übereinstimmung: MockServer oder WireMock
  • Gemeinsamer Workflow für Design, Mocking und Tests: Apidog CLI

Alle sechs Optionen lassen sich im Terminal und in CI verwenden. Starten Sie mit einem einfachen dateibasierten Mock und wechseln Sie erst zu JVM-Servern oder einer integrierten Plattform, wenn Sie deren zusätzliche Kontrolle tatsächlich benötigen.

Laden Sie Apidog herunter, wenn Sie aus Ihrem API-Design direkt einen Mock-Server erzeugen möchten.

Top comments (0)