العودة إلى التحديثات
New releaseSep 29, 2026

resterm v1.10.2

عميل API طرفي لـ HTTP وGraphQL وgRPC وWebSocket وSSE. ملفات .http بسيطة يمكنك إجراء diff عليها وإصدار نسخ منها، مع اختبارات نصية وسير عمل ومحاكيات ومسجّل ومشغّل CLI لـ CI.

مشاركة

Resterm
Resterm

بيئة عمل API-as-code للطرفية.
resterm.app · docs

لقطة شاشة لواجهة Resterm TUI الأساسية

Resterm هو عميل API يعتمد على الكود أولاً ومبني حول ملفات .http/.rest العادية. الطلب هو بضعة أسطر من النص يمكنك قراءتها ومقارنتها والاحتفاظ بها في git، وينطبق الأمر ذاته على سير العمل (workflows) والـ mocks المحلية. ترسلها من واجهة الطرفية أثناء عملك، ويشغّل resterm run الملفات نفسها في CI. وإذا كان API الخاص بك خلف SSH bastion أو داخل عنقود Kubernetes، فإن Resterm يفتح لك النفق أو port-forward.

الميزات

  • HTTP وGraphQL وgRPC (مع reflection وstreaming) وWebSocket وSSE
  • ملفات البيئة، والبيئات المجمّعة، وملفات dotenv، ومتغيرات نظام التشغيل
  • bearer tokens، وOAuth 2.0 (client credentials وpassword وauthorization code مع PKCE)، ورموز من أدوات CLI التي تستخدمها بالفعل، مثل gh auth token
  • شهادات TLS للعميل، وCAs جذرية مخصصة، وproxies، وHTTP/2، وcookie jar لكل بيئة
  • عمليات الالتقاط والتحقق باستخدام @capture و@assert، بالإضافة إلى @poll و@retry
  • سير عمل يربط الطلبات في خطوات، باستخدام @if و@for-each
  • RestermScript للمنطق وكتل @rts test
  • محرر يدعم حركات Vim، وإبراز الصياغة، وإكمال التوجيهات والترويسات ومسارات الملفات، وتشخيصات مضمّنة
  • @compare لإرسال طلب واحد إلى عدة بيئات ومقارنة النتائج
  • تتبع الجدول الزمني (timeline tracing) مع ميزانيات لكل مرحلة، والتصدير إلى OpenTelemetry
  • @profile مع إحصاءات زمن الاستجابة، ومدرّج تكراري، وP95 وP99
  • أنفاق SSH وport-forwards الخاصة بـ Kubernetes التي يفتحها Resterm من أجل الطلب
  • خوادم mock محلية من ملفات .http الخاصة بك، وproxy للتسجيل يحوّل حركة المرور الحقيقية إلى طلبات أو mocks
  • resterm run لـ CI، مع مخرجات نصية أو JSON أو JUnit وأكواد خروج تميّز بين فحص فاشل وخطأ TLS أو نفق
  • واجهة Go API بلا واجهة رسومية (headless) لتشغيل الملفات نفسها من كود Go الخاص بك
  • الاستيراد من curl وOpenAPI، ومشاركة المجموعات كحزم (bundles) أو ملفات zip
  • اختصارات لوحة مفاتيح وسمات مخصصة
  • فتح ملف في $EDITOR، أو فتح جسم استجابة في التطبيق الافتراضي

لا حساب ولا تتبع (telemetry).

[!NOTE] لا يمتلك Resterm خادم MCP أو ميزات ذكاء اصطناعي مدمجة. إذا أردت أن يفهم LLM الخاص بك Resterm، فوجّهه إلى وثائق Markdown في docs/ أو إلى resterm.app/docs.

لقطات الشاشة

التتبع والجدول الزمني

لقطة شاشة لـ Resterm مع الجدول الزمني

انقر لرؤية المزيد من الواجهة

سير العمل

لقطة شاشة لـ Resterm مع سير العمل

المُحلّل (Profiler)

لقطة شاشة لمُحلّل Resterm

الشرح (Explain)

لقطة شاشة لتبويب الشرح في Resterm

RestermScript

لقطة شاشة لـ Resterm مع RestermScript

التثبيت

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

تتوفر ملفات ثنائية جاهزة لنظامي macOS وLinux وWindows على صفحة الإصدارات. تحتاج ملفات macOS الثنائية إلى macOS 13 Ventura أو أحدث، وتحتاج ملفات Linux الثنائية إلى glibc 2.32 أو أحدث.

لتحديث تثبيت Homebrew، شغّل brew upgrade resterm. بالنسبة لملفات الإصدارات الثنائية أو عمليات التثبيت التي تمت باستخدام السكربتات، شغّل resterm --update. إذا قمت بالتثبيت باستخدام Go، فأعد تشغيل أمر go install أعلاه. المزيد في دليل التثبيت.

البدء السريع

mkdir my-api && cd my-api
resterm init
resterm

resterm init ينشئ ملف requests.http يحتوي على بعض الطلبات النموذجية وعمليات محاكاة محلية للرد عليها، لذا لا تحتاج إلى واجهة برمجة تطبيقات حقيقية لتجربته. اضغط g Shift+M لبدء خادم المحاكاة، وحرّك المؤشر إلى طلب واضغط Ctrl+Enter لإرساله. اضغط ? للحصول على المساعدة في أي وقت.

لا تحتاج إلى init أيضًا. شغّل resterm، واكتب عنوان URL أو الصق أمر curl، ثم اضغط Ctrl+Enter.

يعمل الملف نفسه أيضًا دون واجهة المستخدم. ابدأ عمليات المحاكاة في طرفية واحدة وشغّل طلبًا في طرفية أخرى:

resterm mock requests.http                       # terminal 1
resterm run --request CreateUser requests.http   # terminal 2

ملفات الطلبات

يقرأ 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.meta.name == "dev"
# @assert response.statusCode == 201
POST users
Content-Type: application/json

{"name":"{{= name }}"}

يعمل @setting قبل الطلب الأول على الملف بأكمله. يبدأ ### طلبًا جديدًا. يمكن للتوجيهات الواقعة فوق طلب أن تكرره أو تتخطاه أو تتحقق من الاستجابة.

توجد المزيد من الأمثلة في _examples/، وكل توجيه مُدرج في مرجع ملف الطلبات.

التوثيق

توجد الوثائق الكاملة على resterm.app/docs. من أفضل نقاط البدء سير العمل وخوادم المحاكاة والتسجيل وواجهة سطر الأوامر وRestermScript.

داخل واجهة TUI، يفتح :help <topic> الدليل المدمج، ويفتح :docs <topic> الصفحة نفسها على الموقع الإلكتروني.

لتشغيل ملفات الطلبات من شيفرة Go الخاصة بك، راجع حزمة headless.

الرعاية

Resterm مجاني ومفتوح المصدر، وسيظل كذلك دائمًا. إذا أعجبك عملي، يمكنك رعايته على GitHub.

الترخيص

Apache License 2.0.

الفئات