API Reference · 플레이 로그

플레이 로그 종료

플레이를 정상 완료 처리하고 최종 점수와 level/stage 최고 진행도를 갱신합니다.

POST/api/v1/campaigns/{campaign_id}/playlogs/{play_log_id}/finish

요청 파라미터

  • campaign_id (path, uuid, required) — 캠페인 식별자.
  • play_log_id (path, uuid, required) — 플레이 식별자.
  • score (body, number, required) — 최종 점수.
  • play_time (body, int, required) — 최종 플레이 시간(초).
  • result (body, enum, required) — win | lose | clear | fail.
  • level (body, int, optional) — 최종 도달 레벨. 0 이상의 정수입니다.
  • stage (body, int, optional) — 최종 도달 스테이지. 0을 포함한 음이 아닌 정수이며 body의 최상위 필드로 전달합니다.
  • extra (body, object, optional) — 자유 형식 결과.

extra.stage는 stage 진행도와 랭킹 입력으로 사용하지 않습니다. 동일하거나 낮은 level/stage, 또는 필드 생략 시 기존 최고값과 달성 시각을 유지하며 두 진행도는 서로 독립적으로 갱신됩니다.

요청예시

shell
curl -X POST \
  "https://added.blomics.net/api/v1/campaigns/{campaign_id}/playlogs/{play_log_id}/finish" \
  -H "Authorization: Bearer sess_prod_0192a1b2-3c4d-7e8f-9012-3456789abcde" \
  -H "Content-Type: application/json" \
  -d '{ "score": 1500, "play_time": 92, "result": "clear", "level": 9, "stage": 7, "extra": { "combo_max": 18 } }'

응답 필드

  • play_log_id (uuid)
  • status (string) — completed.
  • score (number)
  • play_time (int)
  • level (int, nullable)
  • stage (int, nullable)
  • result (string)
  • finished_at (ISO 8601)
  • is_best_score (boolean)
  • best_score (number)
  • is_best_level (boolean)
  • best_level (int, nullable)
  • is_best_stage (boolean)
  • best_stage (int, nullable)

응답예시

json
{
  "play_log_id": "0193a1b2-3c4d-5e6f-7890-abcdef012345",
  "status": "completed",
  "score": 1500,
  "play_time": 92,
  "level": 9,
  "stage": 7,
  "result": "clear",
  "finished_at": "2026-05-02T10:10:00.000Z",
  "is_best_score": true,
  "best_score": 1500,
  "is_best_level": true,
  "best_level": 9,
  "is_best_stage": true,
  "best_stage": 7
}

에러처리

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