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
}에러처리
400INVALID_PARAM— body 형식 오류 또는 level/stage가 음수·소수·문자열인 경우.401UNAUTHORIZED— 인증 실패.404NOT_FOUND— 플레이 로그 없음 또는 소유권 위반.409INVALID_PARAM— 이미 finish/abort 된 플레이.500INTERNAL_ERROR— 서버 오류.