콘텐츠로 이동

이벤트 스트림 (SSE)

GET
/api/v1/stations/{station_id}/events
curl --request GET \
--url 'https://dev.api.endueos.com/api/v1/stations/stn_01J9ZK3Q8M4XW7D2N5R6T0V1BC/events?resource_id=res_01J9ZK3Q8M4XW7D2N5R6T0V1BC' \
--header 'Authorization: Bearer <token>'

Station 이벤트의 SSE 스트림. 이벤트마다 id: {seq}, event: {type}, data: {StationEvent JSON}. Last-Event-ID 헤더(또는 last_event_id)로 이어 받는다. 링버퍼(최근 1000개·15분)를 넘었으면 event: resync 를 보내고 닫는다 — REST 로 다시 읽는다. 열려 있는 동안 서버가 깨어 있으므로 오래 여는 화면에는 WebSocket 을 쓴다.

가이드 — 이벤트와 웹훅

station_id
필수
string
/^stn_[0-9A-HJKMNP-TV-Z]{26}$/
예시
stn_01J9ZK3Q8M4XW7D2N5R6T0V1BC
ticket
string

인증 헤더를 싣지 못하는 클라이언트(EventSource)용.

last_event_id
integer format: int64
types
string

쉼표로 구분한 종류 또는 접두사 (command.*,device.status_changed).

resource_id
string
/^res_[0-9A-HJKMNP-TV-Z]{26}$/
예시
res_01J9ZK3Q8M4XW7D2N5R6T0V1BC

성공.

Media typetext/event-stream
string

요청 형식이 틀렸다 — VALIDATION_ERROR(details.errors[]) 또는 BAD_REQUEST. 본문은 오류 봉투.

인증이 없거나 무효다 — UNAUTHORIZED. 본문은 오류 봉투.

없거나 내 것이 아니다 — *_NOT_FOUND. 본문은 오류 봉투.

한도를 넘었다 — Retry-After 초 뒤에 다시. 본문은 오류 봉투.

서버 오류 — INTERNAL_ERROR. 본문은 오류 봉투.

의존 서비스에 닿지 못했다 — 잠시 뒤 다시. 본문은 오류 봉투.