إذا كنت تعمل مع خدمات gRPC، فغالبًا ستصطدم بحدود عملاء API العامة: دعم محدود للبث، إعدادات proto غير مريحة، أو تجربة gRPC تبدو كإضافة جانبية. Kreya يعالج هذه المشكلة من زاوية مختلفة: يضع gRPC في مركز تجربة الاستخدام، ثم يضيف REST وGraphQL وWebSocket وSSE حوله.
في هذا الدليل سنراجع Kreya من منظور عملي: متى تستخدمه، كيف تبدأ معه، كيف يخزن مشاريعك، وكيف تقرر إن كان مناسبًا لسير عمل فريقك.
ملاحظة سريعة: نتحدث هنا عن عميل API المسمى Kreya، المطوّر بواسطة riok GmbH والمتوفر على kreya.app. لا علاقة له بأي علامة أزياء أو تجميل تحمل الاسم نفسه.
ما هو Kreya؟
Kreya هو عميل API مكتبي بواجهة رسومية من تطوير riok GmbH، وهي شركة برمجيات مقرها سويسرا. يمكنك استخدامه لاستدعاء واختبار APIs عبر عدة بروتوكولات من تطبيق واحد.
يدعم Kreya:
- gRPC
- REST
- GraphQL
- WebSocket
- Server-Sent Events
هذا يجعله مناسبًا للمطورين الذين يتعاملون يوميًا مع أكثر من نمط API، خصوصًا فرق الواجهة الخلفية التي تجمع بين gRPC للخدمات الداخلية وREST أو GraphQL للواجهات العامة.
Kreya برنامج خاص بنموذج Freemium. العميل الأساسي مجاني، بينما تضيف الخطط المدفوعة ميزات مثل الاختبارات المتقدمة، البرمجة النصية، وسيناريوهات الفرق.
يعمل كتطبيق مكتبي أصلي على macOS وWindows وLinux. لا يوجد إصدار متصفح، ولا تحتاج إلى حساب سحابي لإرسال الطلبات. يمكنك تثبيته محليًا والبدء مباشرة.
البدء العملي مع Kreya
سير العمل الأساسي في Kreya عادة يكون كالتالي:
- ثبّت التطبيق على جهازك.
- أنشئ مشروعًا جديدًا.
- أضف خدمة gRPC أو REST أو GraphQL.
- عرّف البيئة مثل
devأوstaging. - أرسل الطلبات واحفظها داخل المشروع.
- خزّن ملفات المشروع في Git إذا كنت تعمل ضمن فريق.
مثال عملي لهيكلة بيئاتك:
environments/
dev
staging
production
يمكنك بعد ذلك استخدام قيم مختلفة لكل بيئة، مثل:
API_HOST=localhost:50051
API_HOST=staging.example.com:443
API_HOST=api.example.com:443
الفكرة الأساسية: لا تكرر الطلبات يدويًا لكل بيئة. عرّف المتغيرات مرة واحدة، ثم بدّل البيئة عند التشغيل.
التركيز على gRPC أولًا
بدأ معظم عملاء API كأدوات REST ثم أضافوا gRPC لاحقًا. في Kreya، دعم gRPC أعمق من مجرد إرسال طلب unary بسيط.
يمكنك تحميل تعريف الخدمة بطريقتين:
- استيراد ملف
.protoمباشرة. - استخدام gRPC server reflection لسحب تعريف الخدمة من خادم يعمل بالفعل.
إذا كان لديك ملف proto:
syntax = "proto3";
service UserService {
rpc GetUser (GetUserRequest) returns (User);
}
message GetUserRequest {
string id = 1;
}
message User {
string id = 1;
string name = 2;
}
يمكنك استيراده في Kreya، اختيار UserService.GetUser، ثم تمرير payload مشابه:
{
"id": "123"
}
إذا كان الخادم يدعم reflection، فلن تحتاج إلى مشاركة ملفات proto يدويًا مع كل مطور. يمكن لـ Kreya قراءة تعريف الخدمة من الخادم مباشرة.
يدعم Kreya جميع أنماط gRPC:
- Unary requests
- Client streaming
- Server streaming
- Bidirectional / duplex streaming
هذا مهم إذا كنت تختبر خدمات بث حقيقية، مثل تدفقات الأحداث، الرسائل، أو أنظمة المعالجة المستمرة.
تحت الغطاء، يستخدم gRPC بروتوكول HTTP/2. ويدعم Kreya أيضًا HTTP/1.1 وHTTP/3. إذا كنت تريد فهمًا أعمق للبروتوكول نفسه، راجع دليل عميل gRPC ودليل اختبار واجهات برمجة تطبيقات gRPC.
استخدام Kreya مع REST
رغم أن gRPC هو نقطة القوة الأساسية، يمكنك استخدام Kreya كعميل REST عادي.
سير العمل المعتاد:
- اختر method مثل
GETأوPOST. - أضف URL.
- عرّف headers.
- أضف query parameters عند الحاجة.
- أرسل body بصيغة JSON أو أي صيغة مدعومة.
- افحص status code وresponse body.
مثال طلب REST:
POST https://api.example.com/users
Content-Type: application/json
Authorization: Bearer {{token}}
{
"name": "Sara",
"email": "sara@example.com"
}
استخدام المتغيرات مثل {{token}} أو {{baseUrl}} يجعل الطلب قابلًا لإعادة الاستخدام عبر البيئات.
إذا كنت جديدًا على هذا النوع من الأدوات، راجع نظرة عامة على عملاء REST API.
استخدام Kreya مع GraphQL
بالنسبة إلى GraphQL، يمكنك إرسال queries وmutations إلى نقطة نهاية GraphQL وقراءة الاستجابة المنظمة.
مثال query:
query GetUser($id: ID!) {
user(id: $id) {
id
name
email
}
}
Variables:
{
"id": "123"
}
هذا مفيد عند اختبار schema، التأكد من الحقول المرجعة، أو تجربة mutations قبل ربطها بالواجهة الأمامية.
إذا كان GraphQL هو البروتوكول الأساسي لديك، فراجع قائمة أفضل عملاء GraphQL.
اختبار WebSocket وServer-Sent Events
يدعم Kreya أيضًا بروتوكولات الوقت الفعلي:
- WebSocket لقنوات ثنائية الاتجاه.
- Server-Sent Events لتدفق أحادي الاتجاه من الخادم إلى العميل.
استخدم WebSocket عندما تحتاج إلى إرسال واستقبال رسائل من الطرفين، مثل الدردشة أو لوحات التحكم الحية.
مثال رسالة WebSocket:
{
"type": "subscribe",
"channel": "orders"
}
واستخدم SSE عندما يكون الخادم فقط هو من يرسل الأحداث، مثل:
event: order.created
data: {"id":"ord_123","status":"created"}
إذا كنت تقارن بين البروتوكولات، راجع تحليل REST مقابل GraphQL مقابل gRPC.
تخزين دون اتصال، خصوصية، وGit
يميز Kreya نفسه بثلاثة قرارات تصميمية مهمة للفرق التقنية: العمل المحلي، الخصوصية، وتخزين المشروع كملفات قابلة للمراجعة.
يعمل دون اتصال
يعمل Kreya على جهازك بدون اتصال دائم بالإنترنت. تبقى الطلبات، البيئات، والاستجابات محليًا.
هذا مفيد إذا كنت تعمل في:
- شبكة داخلية مغلقة.
- بيئة حساسة أمنيًا.
- شركة تمنع إرسال بيانات API إلى خدمات خارجية.
- مشروع لا يسمح باستخدام أدوات SaaS.
للمزيد حول هذه الفئة، راجع دليل أفضل عملاء API الذين يعملون دون اتصال.
يركز على الخصوصية افتراضيًا
بما أن المشروع يعمل محليًا، لا تخرج بيانات API من جهازك افتراضيًا. هذا يشمل:
- URLs
- headers
- request bodies
- response bodies
- environment variables
تسوق Kreya نفسها كأداة privacy-first، ويعزز التصميم المحلي هذا التوجه. كما يمكن لترخيص Enterprise للعمل دون اتصال إزالة متطلبات الحساب بالكامل للبيئات المقيدة.
يخزن المشاريع كملفات قابلة للمقارنة في Git
يخزن Kreya المشروع كملفات JSON عادية ومنظمة على القرص. هذا يعني أنك تستطيع إضافتها إلى Git مثل أي كود آخر.
مثال سير عمل عملي:
git add kreya-project/
git commit -m "Add user service API requests"
git push
عند تعديل طلب API، يظهر الفرق في pull request. يمكنك مراجعة تغييرات مثل:
- تغيير endpoint.
- إضافة header.
- تعديل body.
- تحديث environment variable.
- إضافة اختبار جديد.
وإذا حدث تعديل خاطئ:
git revert <commit-hash>
هذا يجعل تعريفات API جزءًا من عملية المراجعة الهندسية بدل أن تبقى مخزنة داخل مساحة عمل مغلقة.
يقع Kreya ضمن فئة عملاء API الأصليين لـ Git، وهي مناسبة للفرق التي تعتمد على Git كمصدر الحقيقة.
الاختبار والأتمتة
Kreya ليس فقط لإرسال الطلبات يدويًا. يمكنك استخدامه للتحقق من سلوك API بمرور الوقت.
يدعم:
- اختبارات مؤتمتة.
- سكربتات JavaScript.
- اختبارات تعتمد على البيانات.
- Snapshot testing.
- تشغيل عبر CLI مع تقارير JUnit-style.
مثال لفكرة اختبار بسيطة:
// تحقق من أن الاستجابة تحتوي على المستخدم المطلوب
assert.equal(response.status, 200);
assert.equal(response.body.id, "123");
ومثال لاختبار يعتمد على البيانات:
[
{ "id": "123", "expectedName": "Sara" },
{ "id": "456", "expectedName": "Omar" }
]
بدل إرسال كل حالة يدويًا، يمكنك تشغيل نفس الاختبار عبر مجموعة مدخلات.
Snapshot testing
اختبار اللقطات يعمل بهذه الفكرة:
- تشغّل الطلب وتحفظ استجابة مرجعية.
- في التشغيل التالي، يقارن Kreya الاستجابة الجديدة باللقطة.
- إذا تغيرت الاستجابة، يظهر الفرق.
هذا مفيد لاكتشاف تغييرات غير مقصودة في عقد API، مثل حذف حقل أو تغيير بنية JSON.
CI/CD
لدمج الاختبارات في خط البناء، يوفر Kreya أتمتة عبر CLI وتقارير بأسلوب JUnit.
سير عمل CI نموذجي:
checkout code
install dependencies
run Kreya API tests
publish JUnit report
fail build if tests fail
هذا يربط الاختبارات المحلية بنفس النظام الذي يستخدمه الفريق للبناء والنشر.
نموذج الفريميوم
تستخدم Kreya نموذج Freemium بثلاثة مستويات. قد تتغير الأسعار، لذلك تحقق دائمًا من صفحة تسعير Kreya قبل اتخاذ قرار.
الخطة المجانية
الخطة المجانية متاحة إلى الأبد وتغطي الاستخدامات الأساسية، مثل:
- gRPC
- REST
- GraphQL
- WebSocket
- طرق المصادقة الأساسية
إذا كنت مطورًا فرديًا أو تريد استكشاف APIs يوميًا، فغالبًا تكفيك الخطة المجانية كبداية.
خطة Pro
تستهدف الأفراد الذين يحتاجون إلى ميزات متقدمة، مثل:
- البرمجة النصية.
- Snapshot testing.
- المجموعات.
- سجل الطلبات.
- دعم البريد الإلكتروني.
إذا كنت تعتمد على الاختبارات المؤتمتة أو تريد بناء مجموعات تحقق قابلة للتكرار، فهذه هي الخطة التي ستنظر إليها.
خطة Enterprise
تستهدف الشركات وتضيف عادة:
- دعمًا ذا أولوية.
- بوابة للعملاء.
- تسعيرًا ثابتًا لعدد غير محدود من المستخدمين.
- خيار ترخيص للعمل دون اتصال في البيئات المقيدة.
غالبًا توفر الخطط المدفوعة فترة تجريبية قصيرة لاختبار الميزات قبل الشراء.
متى تستخدم Kreya؟
استخدم Kreya إذا كان واحد أو أكثر مما يلي ينطبق عليك:
- تعتمد بقوة على gRPC. دعم proto، server reflection، وأنماط البث المختلفة يجعل Kreya مناسبًا لاختبار خدمات gRPC بجدية.
- تحتاج إلى أداة محلية. إذا كانت بيانات API لا يجب أن تغادر جهازك، فالتصميم المحلي يساعدك.
- تعمل بفلسفة Git-first. تخزين المشروع كملفات JSON قابلة للمقارنة يجعل مراجعة تغييرات API داخل pull requests ممكنة.
- تتعامل مع عدة بروتوكولات. إذا كنت تختبر gRPC وREST وWebSocket في نفس اليوم، فأداة واحدة تقلل تبديل السياق.
وقد لا يكون الخيار الأنسب إذا كنت تحتاج إلى:
- مساحة عمل مستضافة بالكامل في المتصفح.
- تعاون لحظي داخل واجهة ويب.
- مستند API سحابي مشترك كجزء أساسي من سير العمل.
- فريق يعمل عبر Mac وWindows والويب ويريد تجربة موحدة عبر المتصفح.
Kreya مصمم كتطبيق سطح مكتب أولًا.
أين تتناسب Apidog؟
Kreya عميل API مركز، خفيف نسبيًا، ويركز على الخصوصية وgRPC. إذا كان المطلوب هو استدعاء APIs واختبارها من تطبيق مكتبي محلي، فهو يؤدي هذا الدور جيدًا.
لكن بعض الفرق تحتاج أكثر من عميل API. تحتاج إلى دورة حياة كاملة تشمل:
- تصميم API.
- محاكاة API قبل اكتمال الواجهة الخلفية.
- كتابة اختبارات مؤتمتة.
- توليد وثائق تفاعلية.
- التعاون بين أعضاء الفريق.
- تشغيل الاختبارات عبر CI/CD.
Apidog منصة API شاملة لهذا النطاق الأوسع. مثل Kreya، تتعامل مع gRPC وREST وGraphQL وWebSocket، بالإضافة إلى SOAP وSocket.IO. وبجانب العميل، تضيف مصمم OpenAPI مرئيًا، سيناريوهات اختبار مؤتمتة مع CI/CD عبر Apidog CLI، محاكاة ذكية، وثائق تفاعلية يتم إنشاؤها تلقائيًا، ومساحات عمل مشتركة للفرق.
تتوفر Apidog كتطبيق سطح مكتب لأنظمة Windows وMac وLinux، بالإضافة إلى تطبيق ويب وCLI.
المقايضة الواضحة: Kreya أخف وأكثر تركيزًا على العمل المحلي دون اتصال افتراضيًا. Apidog يغطي دورة حياة API الكاملة عندما تحتاج إلى التصميم، المحاكاة، التوثيق، الاختبار، والتعاون في مكان واحد.
إذا كنت تقارن البدائل، راجع قائمة بدائل Postman وقائمة عملاء API الرائعين.
الأسئلة الشائعة
هل Kreya مجانية؟
نعم. لدى Kreya خطة مجانية إلى الأبد تغطي gRPC وREST وGraphQL وWebSocket والمصادقة الأساسية. تضيف خطتا Pro وEnterprise ميزات مثل البرمجة النصية، Snapshot testing، ودعم الفرق.
هل Kreya مفتوحة المصدر؟
لا. Kreya برنامج خاص من تطوير riok GmbH. الخطة المجانية تجعله متاحًا للاستخدام، لكن الكود المصدري ليس مفتوحًا. إذا كانت المصادر المفتوحة شرطًا لديك، راجع خيارات عملاء API المجانية.
هل تعمل Kreya دون اتصال بالإنترنت؟
نعم. Kreya تطبيق مكتبي يعمل دون اتصال. تبقى مشاريعك، بيئاتك، واستجاباتك على جهازك. لا تحتاج إلى حساب سحابي لإرسال طلب.
ما البروتوكولات التي تدعمها Kreya؟
تدعم Kreya gRPC وREST وGraphQL وWebSocket وServer-Sent Events. دعم gRPC هو الأعمق، مع استيراد proto، server reflection، ودعم أنماط البث الأربعة.
كيف تتعامل Kreya مع التحكم في الإصدار؟
تخزن Kreya كل مشروع كملفات JSON قابلة للمقارنة في Git. يمكنك إرسالها إلى المستودع، مراجعة التغييرات في pull requests، والتراجع عن التعديلات باستخدام أوامر Git القياسية.
هل عميل Kreya API مرتبط بماركة الأزياء Kreya؟
لا. Kreya المذكورة هنا هي عميل API الموجود على kreya.app والمطوّر بواسطة riok GmbH. لا علاقة لها بأي علامة أزياء أو تجميل تحمل الاسم نفسه.


Top comments (0)