إنتقل إلى المحتوى الرئيسي

أوامر CLI

توفر الحزمة أمرًا تنفيذيًا واحدًا هو openapi-cli. ويقبل قائمة خيارات مباشرة؛ لا توجد أوامر فرعية من نوع run / validate / init:

openapi-cli [options]

الصيغة​

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

تحديد المواصفات إلزامي: مرّر --spec أو -s، أو اضبط specPath في ملف إعدادات JSON يُحمّل باستخدام --config. بقية الخيارات اختيارية.

الخيارات الأساسية​

الخيارالصيغة المختصرةالقيمة الافتراضيةالوصف
--spec <path-or-url>-s—مسار أو عنوان http(s):// لمواصفات OpenAPI 3.2 بصيغة JSON
--server <url>-S(من المواصفات)تجاوز عنوان URL للخادم المحدد في المواصفات
--output <dir>-o./openapi-cli-reportمجلد إخراج التقارير
--format <formats>-fjson,cli,htmlصيغ التقارير مفصولة بفواصل: json وcli وhtml
--config <path>-c—مسار ملف إعدادات JSON؛ الأولوية لوسائط CLI

خيارات التنفيذ​

الخيارالصيغة المختصرةالقيمة الافتراضيةالوصف
--concurrency <n>-n5الحد الأقصى للطلبات المتزامنة؛ عدد صحيح من 1 إلى 100
--timeout <ms>-t30000مهلة كل طلب بالمللي ثانية، عدد صحيح من 1 إلى 600000؛ تُستخدم أيضًا عند جلب مواصفات بعيدة
--no-fail-on-error—معطّلإرجاع 0 بعد اكتمال التشغيل حتى لو فشلت اختبارات؛ تظل أخطاء الإعدادات والأخطاء الفادحة سببًا للفشل

خيارات التصفية​

الخيارالقيمة الافتراضيةالوصف
--method <methods>—طرق HTTP المطلوب تضمينها، مفصولة بفواصل، مثل get,post
--path <patterns>—أنماط تعبيرات نمطية مفصولة بفواصل لمطابقتها مع كل مسار
--tag <tags>—وسوم OpenAPI المطلوب تضمينها، مفصولة بفواصل
--operation-id <ids>—قيم operationId المطلوب تضمينها، مفصولة بفواصل

خيارات الشبكة وTLS​

الخيارالصيغة المختصرةالقيمة الافتراضيةالوصف
--proxy <url>-p—عنوان وكيل HTTP(S)، مثل http://proxy.corp:8080
--ca <path>——حزمة شهادات CA بصيغة PEM
--cert <path>——شهادة العميل بصيغة PEM لاستخدام mTLS
--key <path>——المفتاح الخاص للعميل بصيغة PEM لاستخدام mTLS
--insecure-kمعطّلتجاوز التحقق من شهادة TLS

المصادقة والترويسات والمتغيرات​

الخيارالصيغة المختصرةالوصف
--header <headers...>-Hترويسات إضافية بصيغة Key: Value؛ يمكن تكرار الخيار
--bearer <token>—رمز Bearer يُرسل في ترويسة Authorization
--variable <vars...>-vمتغيرات Postman بصيغة KEY=VALUE؛ يمكن تكرار الخيار
--env <path>—مسار ملف .env؛ لا يستبدل متغيرات البيئة الموجودة

خيارات gRPC​

الخيارالقيمة الافتراضيةالوصف
--grpc-no-reflectionمعطّلتعطيل الاستكشاف الانعكاسي لخادم gRPC واستخدام ملفات proto بدلًا منه
--grpc-proto <paths...>—مسارات ملفات .proto أو المجلدات التي تحتوي عليها

خيارات MCP​

الخيارالقيمة الافتراضيةالوصف
--mcp-transport <transport>streamable-httpوسيلة نقل MCP: streamable-http أو stdio
--mcp-command <command>—أمر MCP stdio، مثل npx
--mcp-args <args>—وسائط MCP stdio مفصولة بمسافات أو فواصل
--mcp-cwd <dir>—مجلد عمل العملية الفرعية MCP stdio

خيارات المعلومات​

الخيارالصيغة المختصرةالوصف
--help-hعرض المساعدة
--version-Vعرض الإصدار

رموز الخروج​

الرمزالمعنى
0نجحت جميع الاختبارات أو فُعّل --no-fail-on-error
1فشل اختبار واحد أو أكثر أو حدث خطأ فيه، أو تعذر تحليل وسائط CLI
2خطأ في الإعدادات أو فشل تحميل المواصفات أو خطأ فادح أثناء التنفيذ

تطبع CLI عبارة Error: باللون الأحمر وتخرج بالرمز 2 عندما تطرح resolveConfig استثناءً، مثل عدم توفير --spec وعدم ضبط specPath. وتطبع Fatal error: وتخرج بالرمز 2 عندما تطرح runTests استثناءً. بعد اكتمال التشغيل، لا ترجع 1 إلا إذا تحقق report.summary.failed > 0 || report.summary.errors > 0 مع failOnError !== false.

متغيرات البيئة​

لا توجد متغيرات مخصصة باسم OPENAPI_CLI_*. تُقدّم الإعدادات عبر الخيارات وملف الإعدادات والآليات التالية:

  • ملف .env — مرّر --env .env لتحميل أزواج KEY=VALUE إلى process.env. لا تُستبدل المتغيرات الموجودة.
  • توسيع ${VAR} — بعد التحميل، يُستبدل ${VAR_NAME} داخل serverUrl وproxy وقيم headers وauth.token وقيم variables.
openapi-cli --spec openapi.json \
--env .env \
--server 'https://${API_HOST}/v1' \
--bearer '${BEARER_TOKEN}'

أمثلة التشغيل​

# 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