
resterm v1.5.6
عميل API للطرفية (Terminal) يدعم HTTP وGraphQL وgRPC. ملفات .http بسيطة يمكنك مقارنتها والتحكم بإصداراتها، مع سير عمل، نماذج محاكاة، تنميط، تتبّع، استيراد OpenAPI، أنفاق SSH، إعادة توجيه منافذ Kubernetes، WebSocket وSSE ومشغّل CLI.
Resterm
منصة عمل API-as-code للطرفية.
عرض التتبع والجدول الزمني
Resterm هو عميل API يخزّن الطلبات في ملفات .http و .rest نصية يمكن أن تتواجد جنبًا إلى جنب في مستودعك مثل بقية الكود الخاص بك. يمكنك استخدام واجهة الطرفية، أو تشغيل نفس الملفات في CI باستخدام resterm run.
روابط سريعة: لقطات الشاشة، التثبيت، البدء السريع، ملفات الطلبات، التوثيق.
لقطات الشاشة
شاهد الواجهة أثناء العمل (انقر للتوسيع)
سير العمل
المُحلّل
الشرح
RestermScript
لماذا Resterm
- دعم HTTP و GraphQL و gRPC و WebSocket و SSE.
- الأتمتة في ملفات الطلبات: الشروط (
@when،@if/@elif/@else،@for-each)، سير العمل متعدد الخطوات (@workflow/@step)، الالتقاطات، المتغيرات والتأكيدات (@capture،@var،@assert). - الأنفاق في ملف الطلب: يقوم
@sshو@k8sبتوجيه الطلب عبر SSH bastion أو Kubernetes port-forward يفتحه ويغلقه Resterm نيابة عنك، مع ملفات تعريف لكل ملف أو مساحة عمل. - تسجيل حركة HTTP وتصديرها إلى ملفات Resterm
.httpكطلبات أو استجابات وهمية. - RestermScript، لغة تعبيرات صغيرة مبنية لـ Resterm، مع خطافات JavaScript عندما تريدها.
- تحكم شبيه بـ Vim مع تلميحات الاختصارات، مساعدة غير متصلة قابلة للبحث،
Shift+kللمساعدة تحت المؤشر،/للبحث وأوامر مثل:wو:qو:helpو:docs. - المصادقة: OAuth 2.0 (بيانات اعتماد العميل، كلمة المرور، رمز التفويض مع PKCE) و
@auth commandلإعادة استخدام الرموز من أدوات CLI المثبتة لديك بالفعل، مثلgh auth token. - مشغّل CLI:
resterm runللتشغيل النصي و CI، مع إخراج JSON و JUnit. - خوادم وهمية معلنة بجانب الطلبات التي تحاكيها، مع قواعد المطابقة، التسلسلات، التحقق من الاستدعاء وإعادة التحميل الفوري.
- تتبع الجدول الزمني، التحليل ومقارنة التشغيلات عبر البيئات.
- نصوص البث المباشر ووحدة تحكم تفاعلية لـ WebSocket و SSE.
- بدون تكامل ذكاء اصطناعي
التثبيت
macOS و Linux:
brew install resterm
# or
curl -fsSL https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.sh | bash
Windows:
iwr -useb https://raw.githubusercontent.com/unkn0wn-root/resterm/main/install.ps1 | iex
من المصدر، باستخدام Go 1.25 أو أحدث:
go install github.com/unkn0wn-root/resterm/cmd/resterm@latest
[!IMPORTANT] تعتمد ثنائيات Linux المُجمّعة مسبقًا على glibc 2.32 أو أحدث. على توزيعة أقدم، ابنِ من المصدر باستخدام سلسلة أدوات glibc أحدث أو قم بترقية glibc قبل استخدام أرشيفات الإصدارات.
يتم تحديث تثبيتات Homebrew باستخدام brew upgrade resterm. تستخدم الثنائيات من صفحة الإصدارات أو نصوص التثبيت resterm --check-update و resterm --update، والتي تقوم بالتنزيل والتحقق والتثبيت في المكان. على Windows يبقى الثنائي القديم بجانب الجديد باسم resterm.exe.old ويتم تنظيفه في التحديث التالي.
التثبيت اليدوي
تتوفر الثنائيات لـ macOS و Linux و Windows (amd64 و arm64) على صفحة الإصدارات. الأوامر أدناه تفعل نفس الشيء الذي يفعله التنزيل اليدوي من صفحة الإصدارات. يحتاج إصدار Unix إلى curl و jq.
# Find the latest release tag
LATEST_TAG=$(curl -fsSL https://api.github.com/repos/unkn0wn-root/resterm/releases/latest | jq -r .tag_name)
# Download the matching binary (Darwin/Linux + amd64/arm64)
curl -fL -o resterm "https://github.com/unkn0wn-root/resterm/releases/download/${LATEST_TAG}/resterm_$(uname -s)_$(uname -m)"
# Install on PATH
chmod +x resterm
sudo install -m 0755 resterm /usr/local/bin/resterm
$latest = Invoke-RestMethod https://api.github.com/repos/unkn0wn-root/resterm/releases/latest
$asset = $latest.assets | Where-Object { $_.name -like 'resterm_Windows_*' } | Select-Object -First 1
Invoke-WebRequest -Uri $asset.browser_download_url -OutFile resterm.exe
# Optionally move to a directory on PATH:
Move-Item resterm.exe "$env:USERPROFILE\bin\resterm.exe"
البدء السريع
mkdir my-api && cd my-api
resterm init
resterm
ينشئ resterm init مشروعًا صغيرًا يمكنك البدء في استخدامه على الفور. يحتوي requests.http المُنشأ على سيناريوهات وهمية محلية وبعض الطلبات التي تُبنى على بعضها البعض، وتغطي التأكيدات، ومصادقة bearer، ومطابقة JSON، و json-rules و @for-each. اضغط g Shift+m لبدء الخادم الوهمي، ثم Ctrl+Enter لإرسال الطلب تحت المؤشر.
يمكنك أيضًا فتح Resterm مباشرة بدون init. شغّل resterm، اكتب عنوان URL واضغط Ctrl+Enter. يمكنك أيضًا لصق أمر curl - هذا يعمل أيضًا.
نفس الملف يعمل بدون TUI:
resterm run --request CreateUser requests.http
ملفات الطلبات
يدعم Resterm صيغة HTTP القياسية، لكنه يتجاوز ذلك بكثير مع توجيهات # @ للتكوين والأتمتة:
# @setting base-url https://api.example.com/v1/
### Create users
// Send this request once for each name in the list.
# @for-each ["david", "tom"] as name
# @when env.mode == "development"
# @assert response.statusCode == 201
POST users
Content-Type: application/json
{"name":"{{= name }}"}
وضع @setting قبل الطلب الأول يطبّق على الملف بأكمله. يبدأ ### طلبًا جديدًا، ويمكن للتوجيهات أن تكرر أو تحدّ أو تتحقق من الطلب أسفلها. المزيد في _examples/ و مرجع التوجيهات.
الخوادم الوهمية
يتم تعريف الاستجابات الوهمية في نفس ملفات الطلبات (لكن ليس بالضرورة). مثال، سيناريوهان على مسار واحد:
### Payment accepted
# @mock method=POST path=/payments name=accepted default=true latency=150ms
HTTP/1.1 202 Accepted
Content-Type: application/json
{"id":"pay_123","status":"pending"}
### Payment declined
# @mock method=POST path=/payments name=declined
# @match query={"mode":"decline"} headers={"X-Tenant":"demo"} json={"amount":0}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
{"error":"amount must be positive"}
قدّم ملفًا واحدًا أو دليلًا كاملًا:
resterm mock ./requests.http
resterm mock --recursive --addr 127.0.0.1:9090 ./requests
المطابقة على الاستعلام والترويسات والجسم، وتسلسلات الاستجابة لاختبارات الاستقصاء، والتحقق من الاستدعاء وإعادة التحميل الفوري مغطاة في مرجع الخادم الوهمي. مثال عملي: _examples/mocks.http.
تسجيل حركة المرور
يمكنك توجيه تطبيقك عبر وكيل Resterm وسيقوم بالتقاط حركة المرور في ملف Resterm .http، كطلبات أو وهميات أو كليهما.
resterm record --upstream https://api.example.com --out captured.http --mode both
وجّه عنوان URL الأساسي لـ API في تطبيقك إلى http://127.0.0.1:9000، ثم أوقف التسجيل بـ Ctrl+C. تفعل TUI نفس الشيء باستخدام :record start --upstream <origin>، بالإضافة إلى :record as-request و :record as-mock لإدراج الالتقاطات في الملف المفتوح.
المزيد في مرجع التسجيل.
المزيد
| المجال | التوثيق |
|---|---|
| الأتمتة | سير العمل، الاستقصاء وإعادة المحاولة، مقارنة التشغيلات، الجدول الزمني والتتبع، التحليل |
| النقل | gRPC، GraphQL، WebSocket و SSE |
| المصادقة والاتصال | OAuth 2.0، المصادقة من CLI الخاص بك، أنفاق SSH، Kubernetes port-forwards |
| البرمجة النصية | RestermScript، خطافات JavaScript، واجهة Go بدون واجهة، resterm-runner |
| الإدخال والإخراج | استيراد curl، استيراد OpenAPI، مشاركة المجموعات، سجل الاستجابات والفرق |
| الإعداد | البيئات والمتغيرات، التكوين، السمات، ارتباطات المفاتيح |
المفاتيح
اضغط ? للحصول على مساعدة Resterm العامة و Shift+k للحصول على مساعدة حول ما هو تحت المؤشر. الجدول الكامل في جولة الواجهة. للبدء السريع، تحتاج فقط إلى:
Ctrl+Enterيرسل الطلبTab/Shift+Tabيبدّل الأجزاءg pينتقل إلى الاستجابة
التوثيق
docs/resterm.mdيغطي صيغة الطلبات والتوجيهات والبرمجة النصية والنقل.docs/cli.mdيغطيresterm runوالمستوردين والمجموعات والسجل.docs/restermscript.mdهو مرجع RestermScript.- التوافق يسرد ما يبقى مستقرًا خلال الإصدار v1.
داخل TUI، يفتح :help <topic> الدليل المدمج و :docs <topic> يفتح النسخة الإلكترونية للإصدار المثبت.