Ikhtisar
Alih-alih melakukan pollingGET /jobs/{id}, berikan URL webhook kepada Krea. Krea mengirim job ke URL tersebut saat job selesai.
Menggunakan Webhooks
Tambahkan headerX-Webhook-URL ke request generasi mana pun. Ketika job completed, failed, atau cancelled, Krea mengirim POST request ke URL tersebut.
Payload Webhook
Body request memiliki bentuk yang sama dengan responsGET /jobs/{id}:
Memverifikasi Tanda Tangan
Krea menandatangani setiap webhook dengan Ed25519. Verifikasi tanda tangan sebelum Anda memercayai payload, dan tolak request yang tidak memiliki tanda tangan.
Krea menandatangani SHA-256 hex huruf kecil dari timestamp, URL, metadata, dan body request mentah, yang digabungkan dengan baris baru:
- Periksa bahwa
X-Krea-Webhook-Urlsama persis denganX-Webhook-URLyang Anda kirim bersama job. - Periksa bahwa timestamp berada dalam rentang 5 menit dari waktu server Anda saat ini.
- Terima request jika tanda tangan berhasil diverifikasi dengan kunci mana pun di
https://api.krea.ai/.well-known/jwks.json. Cache kunci paling lama 24 jam. Krea memublikasikan kunci baru 24 jam sebelum mulai menandatangani dengannya.
express.raw() di Express, await request.arrayBuffer() di framework Fetch API, atau request.get_data() di Flask. Perlakukan header X-Krea-Webhook-Metadata yang tidak ada sebagai string kosong.
Pengiriman dan Percobaan Ulang
Kembalikan2xx dalam 15 detik. Jika request mengalami timeout, tidak dapat terhubung, atau menerima 5xx, 408, 423, 425, atau 429, Krea mencoba ulang selama sekitar 10 menit dengan timestamp dan tanda tangan baru setiap kali. Krea tidak mencoba ulang untuk 4xx lainnya.
Job yang sama dapat diterima lebih dari sekali, jadi lakukan deduplikasi berdasarkan job_id dan status.
Webhooks vs. Polling
Gunakan webhooks bila Anda memiliki server yang dapat menerima HTTP request. Gunakan polling untuk aplikasi sisi klien atau ketika Anda tidak dapat mengekspos endpoint publik.
Langkah Berikutnya
Job Lifecycle
Pelajari status job dan polling status
Contoh Kode
Buat gambar dengan API, dari awal hingga akhir