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