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

نظرة عامة

بدلًا من الاستعلام عن GET /jobs/{id} بشكل متكرر، زوّد Krea برابط ويب هوك. ترسل Krea المهمة إلى هذا الرابط عند انتهائها.

استخدام الويب هوك

أضف رأس X-Webhook-URL إلى أي طلب توليد. عندما تكتمل المهمة أو تفشل أو تُلغى، ترسل Krea طلب POST إلى هذا الرابط.

حمولة الويب هوك

لجسم الطلب نفس بنية استجابة GET /jobs/{id}:

التحقق من التوقيعات

توقّع Krea كل ويب هوك باستخدام Ed25519. تحقّق من التوقيع قبل أن تثق بأي حمولة، وارفض الطلبات التي لا تحتوي على توقيع. توقّع Krea قيمة SHA-256 بصيغة hex بأحرف صغيرة للطابع الزمني والرابط والبيانات الوصفية وجسم الطلب الخام، مفصولة بأسطر جديدة:
للتحقق من طلب:
  1. تأكّد من أن X-Krea-Webhook-Url يطابق تمامًا قيمة X-Webhook-URL التي أرسلتها مع المهمة.
  2. تأكّد من أن الطابع الزمني يقع ضمن 5 دقائق من الوقت الحالي على خادمك.
  3. اقبل الطلب إذا تم التحقق من التوقيع بأي مفتاح في https://api.krea.ai/.well-known/jwks.json. خزّن المفاتيح مؤقتًا لمدة 24 ساعة كحد أقصى. تنشر Krea كل مفتاح جديد قبل 24 ساعة من بدء التوقيع به.
احسب التجزئة على بايتات الجسم الخام، وليس على JSON بعد إعادة تسلسله. على سبيل المثال، استخدم express.raw() في Express، أو await request.arrayBuffer() في أُطر Fetch API، أو request.get_data() في Flask. اعتبر رأس X-Krea-Webhook-Metadata المفقود سلسلة فارغة.

التسليم وإعادة المحاولات

أرجع رمز 2xx خلال 15 ثانية. إذا انتهت مهلة الطلب، أو تعذّر الاتصال، أو تلقى 5xx أو 408 أو 423 أو 425 أو 429، تعيد Krea المحاولة لمدة 10 دقائق تقريبًا بطابع زمني وتوقيع جديدين في كل مرة. لا تعيد Krea المحاولة عند أي رمز 4xx آخر. قد تصل المهمة نفسها أكثر من مرة، لذا أزل التكرار بناءً على job_id وstatus.

الويب هوك مقابل الاستعلام

استخدم الويب هوك عندما يكون لديك خادم يمكنه استقبال طلبات HTTP. استخدم الاستعلام للتطبيقات على جانب العميل أو عندما لا يمكنك عرض نقطة نهاية عامة.

الخطوات التالية

دورة حياة المهمة

تعرّف على حالات المهمة والاستعلام عن الحالة

أمثلة الكود

ولّد صورة باستخدام API من البداية إلى النهاية