메인 콘텐츠로 건너뛰기

개요

페르소나의 세션 라이프사이클을 관리합니다. 상태 라벨은 테넌트가 자유롭게 정의하며, 각 전이마다 타임스탬프가 기록됩니다.
입장 → CHAT → SHOPPING → PAYMENT → COMPLETE → 퇴장
 ↑       ↑        ↑          ↑         ↑        ↑
 t1      t2       t3         t4        t5       t6

세션 시작

POST /v1/persona/{persona_id}/session/start

응답

{
  "success": true,
  "data": {
    "session_id": "a1b2c3d4-...",
    "persona_id": "d28fd898-...",
    "started_at": "2026-04-17T10:00:00Z"
  }
}
페르소나당 활성 세션은 1개만 허용됩니다. 이미 활성 세션이 있으면 409 SESSION_ACTIVE가 반환됩니다.

상태 스탬프 기록

POST /v1/persona/{persona_id}/session/stamp

요청

{
  "status": "SHOPPING",
  "meta": {
    "zone": "processed_food",
    "cart_items": 3
  }
}
필드타입필수설명
statusstringO상태 라벨 (테넌트 자유 정의)
metaobjectX상태 관련 추가 데이터

응답

{
  "success": true,
  "data": {
    "session_id": "a1b2c3d4-...",
    "status": "SHOPPING",
    "timestamp": "2026-04-17T10:05:00Z"
  }
}

세션 종료

POST /v1/persona/{persona_id}/session/end
세션을 종료하고 전체 스탬프 이력을 반환합니다.

응답

{
  "success": true,
  "data": {
    "session_id": "a1b2c3d4-...",
    "persona_id": "d28fd898-...",
    "started_at": "2026-04-17T10:00:00Z",
    "ended_at": "2026-04-17T11:30:00Z",
    "stamps": [
      { "status": "ENTER", "timestamp": "2026-04-17T10:00:00Z" },
      { "status": "CHAT", "timestamp": "2026-04-17T10:02:00Z" },
      { "status": "SHOPPING", "timestamp": "2026-04-17T10:15:00Z" },
      { "status": "PAYMENT", "timestamp": "2026-04-17T11:20:00Z" },
      { "status": "COMPLETE", "timestamp": "2026-04-17T11:25:00Z" }
    ]
  }
}

현재 세션 조회

GET /v1/persona/{persona_id}/session
활성 세션과 현재까지의 스탬프 이력을 반환합니다.

코드 예제

# 세션 시작
curl -X POST https://api.ones1ght.com/v1/persona/$PERSONA_ID/session/start \
  -H "Authorization: Bearer $SDK_KEY"

# 상태 스탬프
curl -X POST https://api.ones1ght.com/v1/persona/$PERSONA_ID/session/stamp \
  -H "Authorization: Bearer $SDK_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status": "SHOPPING", "meta": {"zone": "wine"}}'

# 현재 세션 조회
curl https://api.ones1ght.com/v1/persona/$PERSONA_ID/session \
  -H "Authorization: Bearer $SDK_KEY"

# 세션 종료
curl -X POST https://api.ones1ght.com/v1/persona/$PERSONA_ID/session/end \
  -H "Authorization: Bearer $SDK_KEY"