Zum Hauptinhalt springen

CLI-Befehle

Das Paket enthält ein einziges ausführbares Programm, openapi-cli. Es akzeptiert eine flache Liste von Optionen; Unterbefehle wie run / validate / init gibt es nicht:

openapi-cli [options]

Aufrufsyntax​

openapi-cli --spec openapi.json [options]
openapi-cli -c config.json

Eine Spezifikation ist erforderlich: Geben Sie --spec (oder -s) an oder setzen Sie specPath in einer mit --config geladenen JSON-Konfigurationsdatei. Die übrigen Optionen sind optional.

Grundlegende Optionen​

OptionKurzformStandardBeschreibung
--spec <path-or-url>-s—Pfad oder http(s)://-URL einer OpenAPI-3.2-JSON-Spezifikation
--server <url>-S(aus der Spezifikation)Server-URL aus der Spezifikation überschreiben
--output <dir>-o./openapi-cli-reportAusgabeverzeichnis für Berichte
--format <formats>-fjson,cli,htmlKommagetrennte Berichtsformate: json, cli, html
--config <path>-c—Pfad zur JSON-Konfigurationsdatei; CLI-Argumente haben Vorrang

Ausführungsoptionen​

OptionKurzformStandardBeschreibung
--concurrency <n>-n5Maximale Anzahl gleichzeitiger Anfragen; Ganzzahl von 1 bis 100
--timeout <ms>-t30000Zeitlimit je Anfrage in ms, Ganzzahl von 1 bis 600000; gilt auch beim Abrufen entfernter Spezifikationen
--no-fail-on-error—ausNach einem abgeschlossenen Lauf auch bei fehlgeschlagenen Tests 0 zurückgeben; Konfigurationsfehler und fatale Fehler führen weiterhin zum Fehlschlag

Filteroptionen​

OptionStandardBeschreibung
--method <methods>—Kommagetrennte HTTP-Methoden, die berücksichtigt werden sollen, z. B. get,post
--path <patterns>—Kommagetrennte reguläre Ausdrücke zum Abgleich mit jedem Pfad
--tag <tags>—Kommagetrennte OpenAPI-Tags, die berücksichtigt werden sollen
--operation-id <ids>—Kommagetrennte operationId-Werte, die berücksichtigt werden sollen

Netzwerk- und TLS-Optionen​

OptionKurzformStandardBeschreibung
--proxy <url>-p—HTTP(S)-Proxy-URL, z. B. http://proxy.corp:8080
--ca <path>——CA-Zertifikatsbündel im PEM-Format
--cert <path>——Clientzertifikat im PEM-Format für mTLS
--key <path>——Privater Clientschlüssel im PEM-Format für mTLS
--insecure-kausTLS-Zertifikatsprüfung überspringen

Authentifizierung, Header und Variablen​

OptionKurzformBeschreibung
--header <headers...>-HZusätzliche Header als Key: Value; mehrfach verwendbar
--bearer <token>—Bearer-Token für den Header Authorization
--variable <vars...>-vPostman-Variablen als KEY=VALUE; mehrfach verwendbar
--env <path>—Pfad zu einer .env-Datei; vorhandene Umgebungsvariablen bleiben erhalten

gRPC-Optionen​

OptionStandardBeschreibung
--grpc-no-reflectionausgRPC-Server-Reflection deaktivieren und stattdessen proto-Dateien verwenden
--grpc-proto <paths...>—Pfade zu .proto-Dateien oder zu Verzeichnissen mit solchen Dateien

MCP-Optionen​

OptionStandardBeschreibung
--mcp-transport <transport>streamable-httpMCP-Transport: streamable-http oder stdio
--mcp-command <command>—MCP-stdio-Befehl, z. B. npx
--mcp-args <args>—MCP-stdio-Argumente, durch Leerzeichen oder Kommas getrennt
--mcp-cwd <dir>—Arbeitsverzeichnis des MCP-stdio-Unterprozesses

Informationsoptionen​

OptionKurzformBeschreibung
--help-hHilfe anzeigen
--version-VVersion anzeigen

Exit-Codes​

CodeBedeutung
0Alle Tests bestanden oder --no-fail-on-error gesetzt
1Mindestens ein Test ist fehlgeschlagen oder hat einen Fehler gemeldet, oder die CLI-Argumente konnten nicht verarbeitet werden
2Konfigurationsfehler, Fehler beim Laden der Spezifikation oder fataler Laufzeitfehler

Wenn resolveConfig eine Ausnahme auslöst, etwa weil weder --spec noch ein konfigurierter specPath vorliegt, gibt die CLI Error: in Rot aus und beendet sich mit 2. Bei einer Ausnahme in runTests gibt sie Fatal error: aus und beendet sich mit 2. Nach einem vollständig durchgeführten Lauf liefert sie nur dann 1, wenn report.summary.failed > 0 || report.summary.errors > 0 und failOnError !== false gelten.

Umgebungsvariablen​

Es gibt keine speziellen OPENAPI_CLI_*-Variablen. Die Konfiguration erfolgt über Optionen, die Konfigurationsdatei und folgende Mechanismen:

  • .env-Datei — mit --env .env werden KEY=VALUE-Paare in process.env geladen. Vorhandene Variablen werden nicht überschrieben.
  • ${VAR}-Ersetzung — nach dem Laden wird ${VAR_NAME} in serverUrl, proxy, den Werten von headers, auth.token und den Werten von variables ersetzt.
openapi-cli --spec openapi.json \
--env .env \
--server 'https://${API_HOST}/v1' \
--bearer '${BEARER_TOKEN}'

Aufrufbeispiele​

# Test a local spec against its first server URL
openapi-cli --spec openapi.json

# Override the server and write JSON + HTML reports
openapi-cli --spec openapi.json \
--server https://api.staging.example.com \
--format json,html --output ./reports

# Only GET requests, 10 workers, with a bearer token
openapi-cli --spec openapi.json --method get --concurrency 10 --bearer "$TOKEN"

# Use a config file
openapi-cli --config openapi-cli.config.json