Skip to main content

개요

GET /jobs/{id}를 반복해서 폴링하는 대신, 작업이 완료될 때 POST 요청을 받을 웹훅 URL을 제공할 수 있습니다. 이는 더 효율적이며 불필요한 API 호출을 줄여줍니다.

웹훅 사용하기

어떤 생성 요청에든 X-Webhook-URL 헤더를 추가하세요. 작업이 종료 상태(completed, failed, cancelled)에 도달하면 API가 제공한 URL로 전체 작업 데이터를 담아 POST 요청을 보냅니다.
// npm install @krea-ai/sdk
import { Krea } from "@krea-ai/sdk";

const krea = new Krea({ apiKey: process.env.KREA_API_KEY });

const job = await krea.image(
  "bfl/flux-1-dev",
  {
    prompt: "a serene mountain landscape at sunset",
    width: 1024,
    height: 576
  },
  { webhookUrl: "https://your-server.com/webhook" }
);

console.log(`Job ID: ${job.job_id}`);
// Your webhook will receive the results when complete

웹훅 페이로드

작업이 완료되면 웹훅 URL은 다음과 같은 작업 데이터가 담긴 POST 요청을 받습니다:
{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "created_at": "2025-01-15T10:30:00.000Z",
  "completed_at": "2025-01-15T10:30:05.000Z",
  "result": {
    "urls": ["https://..."]
  }
}

모범 사례

빠르게 응답하세요 - 2xx 상태 코드를 신속하게 반환하세요. 필요하다면 웹훅 데이터는 비동기로 처리하세요.
페이로드를 검증하세요 - 결과를 처리하기 전에 job_id가 여러분이 시작한 작업과 일치하는지 확인하세요.
  • 보안을 위해 HTTPS 엔드포인트를 사용하세요
  • 중복 전달에 대비해 멱등성을 구현하세요
  • 디버깅을 위해 웹훅 수신 로그를 남기세요

웹훅 대 폴링

방식장점단점
웹훅실시간 알림, 적은 API 호출공개 엔드포인트 필요
폴링어디서나 동작, 서버 불필요API 호출 증가, 약간의 지연
HTTP 요청을 받을 수 있는 서버가 있다면 웹훅을 사용하세요. 클라이언트 측 애플리케이션이거나 공개 엔드포인트를 노출할 수 없다면 폴링을 사용하세요.

다음 단계

Job Lifecycle

작업 상태와 상태 폴링에 대해 알아보기

Code Examples

웹훅 처리가 포함된 전체 예제 보기