등록하기
- 설정의 웹훅 화면을 열어요.
- Add Endpoint에 받을 주소를 넣고, 받을 이벤트를 골라요. 이벤트는 하나 이상 골라야 하고, 주소는
https://여야 해요. - 만든 엔드포인트의 Signing Secret(
whsec_로 시작해요)을 고객사 서버에 보관해요.
이벤트
data.id로 GET /generations/{id}를 호출해서 받아요. error_code는 오류의 코드와 같아요.
서명 확인
주소를 아는 누구나 요청을 보낼 수 있으니, 처리하기 전에 꼭 서명을 확인해 주세요. 요청에는svix-id, svix-timestamp, svix-signature 헤더가 와요. 아래 라이브러리에 헤더를 그대로 넘기면 돼요.
- 원본 본문을 넘겨요. JSON으로 파싱한 뒤 다시 만든 문자열은 서명이 맞지 않아요.
- 서버 시계를 맞춰 주세요. 서명 시각이 5분 넘게 차이 나면 오래된 요청으로 보고 거절해요.
webhook-id, webhook-timestamp, webhook-signature로 바꿔서 넘겨 주세요.
응답과 재시도
30초 안에2xx로 답하면 전달한 거예요. 그 밖의 응답은 실패로 보고, 리다이렉트(3xx)도 따라가지 않아요.
실패하면 이 간격으로 다시 보내요. 앞 시도에서부터 잰 시간이에요.
꼭 지켜 주세요
- 같은 이벤트가 두 번 올 수 있어요. 작업 하나에 이벤트는 하나뿐이니
data.id로 이미 처리했는지 확인해 주세요. - 순서를 기대하지 마세요. 나중에 끝난 작업의 이벤트가 먼저 올 수 있어요.
- 웹훅만 믿지 마세요. 드물게 늦거나 전달되지 않을 수 있어요. 오래 끝나지 않는 작업은
GET /generations/{id}로 확인하면 정확한 상태를 알 수 있어요.