ياك (Yaak) هو عميل API مكتبي مفتوح المصدر ومحلي أولًا لاختبار وبناء واجهات برمجة التطبيقات. يدعم REST وGraphQL وgRPC وWebSocket وServer-Sent Events، ويحفظ مساحات العمل والطلبات على جهازك كملفات نصية عادية يمكن إدارتها عبر Git، بدون حساب إلزامي أو مزامنة سحابية مفروضة.
إذا بحثت عن "Yaak" ووجدت نتائج عن Yaak في مونتانا، فهذا شيء مختلف. هذه المقالة عن عميل API المتوفر على yaak.app، وليس عن المجتمع غير المدمج قرب الحدود الكندية.
في هذا الدليل العملي، سنغطي: ما هو Yaak، لماذا يهم كونه محليًا أولًا، كيف يمكن استخدامه مع Git، ما البروتوكولات التي يدعمها، وكيف تقرر إن كان مناسبًا لسير عملك مقارنة بمنصة تصميم واختبار API مثل Apidog.
قصة المنشأ: بناه مبتكر Insomnia
تاريخ Yaak مهم لأنه يشرح خياراته التقنية. أنشأ غريغوري شير النسخة الأصلية من Insomnia، أحد أشهر عملاء API في عقد 2010. بعد استحواذ Kong على Insomnia، اتجهت الأداة تدريجيًا نحو نموذج أكثر اعتمادًا على الحسابات والسحابة، وهو ما لم يناسب كثيرًا من المستخدمين القدامى.
Yaak هو محاولة مستقلة جديدة من شير لبناء عميل API سريع وخاص ومحلي أولًا. المشروع مفتوح المصدر بموجب ترخيص MIT، ولا يحاول أن يكون منصة شاملة؛ هدفه الأساسي هو تنفيذ الطلبات وإدارتها محليًا بكفاءة.
عمليًا، هذا يعني أن Yaak مناسب إذا كنت تريد:
- تشغيل طلبات API بدون تسجيل دخول.
- الاحتفاظ بملفاتك على جهازك.
- مراجعة تغييرات الطلبات عبر Git.
- استخدام عميل سطح مكتب سريع بدلًا من منصة ثقيلة.
محلي أولًا ومتوافق مع Git بالتصميم
الميزة الأساسية في Yaak هي مكان تخزين بياناتك. الطلبات، البيئات، ومساحات العمل تبقى على نظام الملفات المحلي. لا توجد مزامنة سحابية إجبارية، ولا حساب إلزامي، ولا تتبع افتراضي.
هذا مفيد خصوصًا في الحالات التالية:
- العمل على واجهات داخلية لا يجب رفع تفاصيلها إلى خدمة خارجية.
- اختبار APIs أثناء السفر أو بدون اتصال إنترنت.
- حفظ ملفات الطلبات داخل نفس مستودع التطبيق.
- مراجعة تغييرات API في Pull Requests مثل أي تغيير في الكود.
مثال عملي لسير عمل Git:
git checkout -b api/update-auth-flow
# عدّل الطلبات داخل Yaak
# ثم راجع الملفات النصية التي تغيرت
git status
git diff
git add .
git commit -m "Update auth API requests"
git push origin api/update-auth-flow
بهذا تصبح طلبات API جزءًا من تاريخ المشروع، ويمكن للفريق مراجعتها بجانب الكود الذي يستخدمها.
إذا كنت تريد مقارنة هذا النمط بأدوات أخرى تعتمد على الملفات وGit، راجع دليل عملاء واجهة برمجة التطبيقات المتوافقة مع Git.
من ناحية الأداء، بُني Yaak باستخدام Tauri وRust وReact، ما يساعد على إبقاء تطبيق سطح المكتب خفيفًا وسريع الاستجابة، خصوصًا لأن العمليات الأساسية لا تحتاج رحلة إلى خادم خارجي.
البروتوكولات التي يدعمها Yaak
Yaak لا يقتصر على REST. يمكن استخدامه لاختبار عدة أنماط شائعة في الخدمات الخلفية الحديثة:
- REST وHTTP: إنشاء الطلبات، ضبط الرؤوس، إرسال JSON أو غيره، وقراءة الاستجابات.
- GraphQL: كتابة الاستعلامات والتعامل مع المخطط بدلًا من إرسال جسم خام فقط.
- gRPC: استدعاء خدمات gRPC مباشرة، وهو مفيد في الخدمات المصغرة والأنظمة الداخلية.
- WebSocket: فتح اتصال مستمر وإرسال/استقبال رسائل للميزات الفورية.
- Server-Sent Events (SSE): اختبار بث الأحداث من الخادم عبر اتصال HTTP واحد.
مثال طلب REST نموذجي يمكن تمثيله داخل Yaak:
GET https://api.example.com/users/123
Authorization: Bearer {{token}}
Accept: application/json
ومثال جسم JSON لطلب POST:
{
"name": "Ahmed",
"email": "ahmed@example.com"
}
يدعم Yaak أيضًا مخططات مصادقة شائعة مثل:
- OAuth 2.0
- AWS Signature v4
- JWT
- إعدادات مصادقة مخصصة
كما يمكنه الاستيراد من أدوات وصيغ معروفة مثل:
- Postman
- Insomnia
- OpenAPI
- Swagger
- curl
مثال أمر curl يمكن استيراده أو تحويله إلى طلب:
curl -X POST https://api.example.com/login \
-H "Content-Type: application/json" \
-d '{"email":"ahmed@example.com","password":"secret"}'
هذا يضع Yaak ضمن نفس فئة عملاء REST API كاملة الميزات، مع تركيز إضافي على العمل المحلي وعدم الاعتماد على السحابة.
استخدام واجهة الأوامر البرمجية CLI للأتمتة
الواجهة الرسومية مفيدة أثناء التطوير، لكن كثيرًا من الفرق تحتاج تشغيل الطلبات في سكربتات أو خطوط CI. لهذا يوفر Yaak واجهة أوامر برمجية مرافقة لتشغيل الطلبات المحفوظة خارج تطبيق سطح المكتب.
هذا مفيد في حالتين رئيسيتين:
- CI/CD: تشغيل فحوصات API تلقائيًا بعد كل تغيير.
- وكلاء الذكاء الاصطناعي: السماح لأدوات البرمجة بتشغيل طلبات محفوظة برمجيًا.
نمط الاستخدام المتوقع يكون مشابهًا للفكرة التالية:
# مثال توضيحي للفكرة العامة
yaak run "Get current user"
أو داخل خط CI:
name: API checks
on:
pull_request:
jobs:
api-checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run saved API requests
run: |
yaak run "Health check"
تحقق دائمًا من توثيق Yaak الرسمي لأسماء الأوامر والخيارات الحالية، لأن واجهات CLI قد تتغير بمرور الوقت.
كان Yaak قد وفر سابقًا مكونًا تجريبيًا لخادم MCP يسمح لمساعدين مثل Claude وCursor بفحص الطلبات وإرسالها. لكن فريق Yaak أوقف هذا المكون ويوجه الآن سير العمل المدعوم بالوكلاء إلى CLI بدلًا منه. لذلك إذا وجدت مقالات قديمة عن MCP في Yaak، فاعتبر أن المسار الموصى به حاليًا هو واجهة الأوامر.
الخلاصة: الطلبات التي تبنيها يدويًا يمكن تشغيلها لاحقًا من سكربت، أو CI، أو وكيل برمجي.
التسعير والترخيص
Yaak مفتوح المصدر بموجب ترخيص MIT على مستوى الكود المصدري. يمكنك عرض الكود، تعديله، بناؤه، وتشغيله بنفسك.
نموذج الاستخدام كالتالي:
- مجاني للاستخدام الشخصي.
- يتطلب ترخيصًا مدفوعًا للاستخدام التجاري أو المرتبط بالعمل.
- يقدم تجربة لمدة 30 يومًا عند التشغيل الأول بدون بطاقة ائتمان.
- توجد خطط للأفراد والشركات، مع تسعير تجاري لكل مقعد للفرق.
لأن الأسعار قد تتغير، تحقق من yaak.app/pricing قبل اتخاذ قرار شراء أو اعتماد داخلي.
هذا النموذج مناسب للمطورين المستقلين، الطلاب، ومن يريدون عميل API محليًا كامل الميزات للاستخدام الشخصي.
كيف تستخدم Yaak في مشروع فعلي
سير عمل عملي بسيط قد يبدو هكذا:
- أنشئ مساحة عمل للمشروع.
- أضف بيئات مثل:
localstagingproduction
- عرّف متغيرات البيئة:
base_url=http://localhost:3000
token=your-dev-token
- أنشئ طلبات API باستخدام المتغيرات:
GET {{base_url}}/api/users
Authorization: Bearer {{token}}
- احفظ ملفات Yaak داخل مستودع المشروع.
- راجع التغييرات عبر Git قبل الدمج.
- شغّل الطلبات يدويًا أثناء التطوير أو عبر CLI عند الحاجة.
هذا النمط يجعل طلبات API قابلة للمشاركة بدون الاعتماد على مزامنة خارجية.
لمن يناسب Yaak
اختر Yaak إذا كنت تريد:
- عميل API مكتبي سريع.
- تشغيلًا كاملًا دون اتصال بالإنترنت.
- ملفات محلية يمكن حفظها في Git.
- عدم إنشاء حساب فقط لإرسال طلب.
- خصوصية أعلى لأن الطلبات لا تغادر جهازك افتراضيًا.
- دعم REST وGraphQL وgRPC وWebSocket وSSE في أداة واحدة.
قد يكون خيارًا قويًا إذا كنت غير مرتاح لأدوات تفرض حسابات إلزامية أو مزامنة سحابية لا تحتاجها.
إذا كنت تقارن البدائل، يستحق Yaak أن يكون ضمن قائمة بدائل Postman وعملاء API غير المتصلين بالإنترنت. كما يمكن مقارنته مع Insomnia، كما في Apidog vs Insomnia، ومع Bruno، كما في Apidog vs Bruno.
أين تتناسب منصة تركز على التصميم إلى جانبه
Yaak عميل API محلي وسريع ومتوافق مع Git. هذه هي قوته الأساسية. لكنه ليس منصة دورة حياة API كاملة، ولا يحاول أن يكون كذلك.
إذا كان سير عملك يتطلب تصميم API، اختبارها، محاكاتها، توثيقها، والتعاون عليها داخل مساحة واحدة، فستحتاج أداة من نوع مختلف. Apidog هي منصة API شاملة تركز على طبقة جودة API: تصميم العقد، الاختبار، المحاكاة، والتوثيق.
يمكن استخدام Apidog في سيناريوهات مثل:
- تصميم واجهات API في محرر OpenAPI مرئي.
- إدارة الفروع أثناء تطوير العقد.
- تشغيل سيناريوهات اختبار آلية مع تأكيدات مرئية.
- إنشاء خوادم وهمية ديناميكية بدون كود.
- نشر توثيق تفاعلي للفريق أو المستخدمين.
- تشغيل سيناريوهات اختبار محفوظة في CI عبر CLI.
يدعم Apidog تطبيقات سطح المكتب على Windows وMac وLinux، بالإضافة إلى تطبيق ويب، ويدعم REST وGraphQL وgRPC وWebSocket وSOAP وSocket.IO.
الاختيار العملي:
- استخدم Yaak عندما تريد عميلًا محليًا سريعًا يعتمد على الملفات ولا يحتاج سحابة.
- استخدم Apidog عندما تحتاج سير عمل تصميم أولًا، محاكاة، توثيق، اختبارات، وتعاون جماعي داخل منصة واحدة.
يمكن للأداتين التعايش داخل نفس الفريق: Yaak للاختبار المحلي السريع، وApidog لإدارة دورة حياة API الأوسع.
الأسئلة الشائعة
هل Yaak مجاني؟
نعم، Yaak مجاني للاستخدام الشخصي. الكود المصدري مفتوح بموجب ترخيص MIT. يتطلب الاستخدام التجاري في العمل ترخيصًا مدفوعًا. تحقق من yaak.app/pricing لمعرفة المستويات الحالية.
هل Yaak مفتوح المصدر؟
نعم. Yaak مفتوح المصدر بموجب ترخيص MIT. يمكنك عرض الكود، تعديله، بناؤه، وتشغيله بنفسك. شروط الترخيص التجارية تنطبق على الثنائيات المدمجة مسبقًا، وليس على الكود نفسه.
من أنشأ Yaak؟
أنشأ غريغوري شير Yaak. وهو المطور الذي بنى Insomnia في الأصل قبل استحواذ Kong عليها.
ما البروتوكولات التي يدعمها Yaak؟
يدعم Yaak REST وHTTP وGraphQL وgRPC وWebSocket وServer-Sent Events. كما يدعم مخططات مصادقة شائعة مثل OAuth 2.0 وAWS Signature v4 وJWT، ويستورد من Postman وInsomnia وOpenAPI وcurl.
هل يعمل Yaak دون اتصال بالإنترنت؟
نعم. Yaak محلي أولًا ويعمل دون اتصال بالإنترنت. تعيش طلباتك على نظام ملفاتك، ولا تغادر جهازك افتراضيًا إلا إذا اخترت مشاركتها. لمزيد من الخيارات، راجع قائمة عملاء API المجانيين.
هل Yaak مرتبط بـ Yaak، مونتانا؟
لا. Yaak، مونتانا مكان قرب الحدود الكندية. Yaak عميل API هو برنامج من yaak.app. الاسم متشابه فقط.
Top comments (0)