API Reference · 플레이 로그

플레이 로그 갱신

진행 중인 플레이의 점수·플레이 시간·level/stage 진행도·부가 정보를 업데이트합니다. finish/abort 전에 임의 횟수 호출 가능합니다.

PATCH/api/v1/campaigns/{campaign_id}/playlogs/{play_log_id}

요청 파라미터

  • campaign_id (path, uuid, required) — 캠페인 식별자.
  • play_log_id (path, uuid, required) — 플레이 식별자.
  • score (body, number, optional) — 현재 점수.
  • play_time (body, int, optional) — 누적 플레이 시간(초).
  • level (body, int, optional) — 도달 레벨. 0 이상의 정수이며 기존 최고값보다 높을 때만 값과 달성 시각을 갱신합니다.
  • stage (body, int, optional) — 도달 스테이지. 0을 포함한 음이 아닌 정수이며 요청 body의 최상위 필드로 전달합니다.
  • extra (body, object, optional) — 자유 형식 부가 정보.

extra.stage는 저장될 수 있지만 진행도와 stage 랭킹에는 사용하지 않습니다. stage는 반드시 최상위 필드로 전달하세요. 동일하거나 낮은 값, 또는 필드 생략 시 기존 최고값과 달성 시각을 유지하며 level과 stage는 서로 독립적으로 갱신됩니다.

요청예시

shell
curl -X PATCH \
  "https://added.blomics.net/api/v1/campaigns/{campaign_id}/playlogs/{play_log_id}" \
  -H "Authorization: Bearer sess_prod_0192a1b2-3c4d-7e8f-9012-3456789abcde" \
  -H "Content-Type: application/json" \
  -d '{ "score": 1200, "play_time": 45, "level": 4, "stage": 7, "extra": { "combo_max": 12 } }'

응답 필드

  • play_log_id (uuid)
  • status (string) — playing.
  • score (number)
  • play_time (int, nullable)
  • level (int, nullable)
  • stage (int, nullable)
  • is_best_level (boolean)
  • best_level (int, nullable)
  • is_best_stage (boolean)
  • best_stage (int, nullable)
  • last_heartbeat_at (ISO 8601)

응답예시

json
{
  "play_log_id": "0193a1b2-3c4d-5e6f-7890-abcdef012345",
  "status": "playing",
  "score": 1200,
  "play_time": 45,
  "level": 4,
  "stage": 7,
  "is_best_level": true,
  "best_level": 4,
  "is_best_stage": true,
  "best_stage": 7,
  "last_heartbeat_at": "2026-05-02T10:05:00.000Z"
}

에러처리

  • 400 INVALID_PARAM — body 형식 오류 또는 level/stage가 음수·소수·문자열인 경우.
  • 401 UNAUTHORIZED — 인증 실패.
  • 404 NOT_FOUND — 플레이 로그 없음 또는 소유권 위반.
  • 409 INVALID_PARAM — 이미 finish/abort 된 플레이.
  • 500 INTERNAL_ERROR — 서버 오류.