अवलोकन
GET /jobs/{id} को बार-बार पोल करने के बजाय, Krea को एक वेबहुक URL दें। जॉब पूरा होने पर Krea उसे उस URL पर भेजता है।
वेबहुक का उपयोग
किसी भी जनरेशन अनुरोध मेंX-Webhook-URL हेडर जोड़ें। जब जॉब completed, failed, या cancelled होता है, तो Krea उस URL पर एक POST अनुरोध भेजता है।
वेबहुक पेलोड
अनुरोध बॉडी का आकारGET /jobs/{id} रिस्पॉन्स जैसा ही होता है:
सिग्नेचर सत्यापित करना
Krea हर वेबहुक को Ed25519 से साइन करता है। किसी पेलोड पर भरोसा करने से पहले सिग्नेचर सत्यापित करें, और बिना सिग्नेचर वाले अनुरोधों को अस्वीकार करें।
Krea टाइमस्टैम्प, URL, मेटाडेटा, और रॉ अनुरोध बॉडी को न्यूलाइन से जोड़कर उनके lowercase hex SHA-256 को साइन करता है:
- जाँचें कि
X-Krea-Webhook-UrlउसX-Webhook-URLसे बिल्कुल मेल खाता है जो आपने जॉब के साथ भेजा था। - जाँचें कि टाइमस्टैम्प आपके सर्वर के मौजूदा समय से 5 मिनट के भीतर है।
- यदि सिग्नेचर
https://api.krea.ai/.well-known/jwks.jsonमें किसी भी कुंजी से सत्यापित हो जाता है तो अनुरोध स्वीकार करें। कुंजियों को अधिकतम 24 घंटे तक कैश करें। Krea किसी नई कुंजी से साइन करना शुरू करने से 24 घंटे पहले उसे प्रकाशित करता है।
express.raw(), Fetch API फ़्रेमवर्क में await request.arrayBuffer(), या Flask में request.get_data() का उपयोग करें। अनुपस्थित X-Krea-Webhook-Metadata हेडर को खाली स्ट्रिंग मानें।
डिलीवरी और रीट्राई
15 सेकंड के भीतर2xx लौटाएँ। यदि अनुरोध टाइम आउट हो जाता है, कनेक्ट नहीं हो पाता, या उसे 5xx, 408, 423, 425, या 429 मिलता है, तो Krea लगभग 10 मिनट तक रीट्राई करता है, हर बार नए टाइमस्टैम्प और सिग्नेचर के साथ। Krea किसी अन्य 4xx पर रीट्राई नहीं करता।
एक ही जॉब एक से अधिक बार आ सकता है, इसलिए job_id और status के आधार पर डुप्लिकेट हटाएँ।
वेबहुक बनाम पोलिंग
जब आपके पास ऐसा सर्वर हो जो HTTP अनुरोध प्राप्त कर सके तो वेबहुक का उपयोग करें। क्लाइंट-साइड एप्लिकेशन के लिए या जब आप कोई सार्वजनिक एंडपॉइंट उजागर नहीं कर सकते तो पोलिंग का उपयोग करें।
अगले चरण
जॉब लाइफ़साइकिल
जॉब स्टेट्स और स्टेटस पोलिंग के बारे में जानें
कोड उदाहरण
API के साथ शुरू से अंत तक एक इमेज जनरेट करें