HTTP
HTTP 방식¶
- Server Information 애널리틱스 웹서버 주소는 다음과 같습니다.
- 샌드박스: https://sandbox-analytics-log.withhive.com/v1/server-recv
- 상용서버: https://analytics-log.withhive.com/v1/server-recv
- Header Information
- Method: POST
- Content-Type: application/json; charset=utf8 (필수)
- Content-Encoding: gzip (body에 압축바이너리를 넣을때 사용하는 옵션)
# body에 압축 바이너리를 사용하는 예제
{
"appId" : "com.com2us.hivesdk.freefull.google.global.android.common",
"logBody" : [
{
"category" : "test",
"dateTime" : "2017-07-24 16:46:36",
"timezone" : "GMT+09:00",
"guid" : "xxxx"
},
{
"category" : "test2",
"dateTime" : "2017-07-24 16:46:36",
"timezone" : "GMT+09:00",
"guid" : "xxxx2"
}
]
}
-
Body Information
-
JSON 형식이며 아래 구조에 맞춰서 전송해야 합니다. 일부 필드는 지정된 키값을 사용해야 입력됩니다.
- 필수 파라미터 (로그에서 아래 필드 전송 필수)
appId | String | Hive에서 지정된 AppId |
logBody | Array | 로그가 한줄씩 들어가는 배열 |
logBody.category | String | 로그 정의에서 지정한 카테고리 |
logBody.dateTime | String | YYYY-MM-DD HH:mm:SS 형식으로 표시되는 로그 시간 한국 시간 기준(KST) 혹은 ISO-8601 |
logBody.guid | String | 로그의 키값 랜덤 문자열 생성 추천 |
이 외의 값은 각 로그에 맞춰서 logBody의 각 행(row)에 넣습니다.
예시¶
호출¶
curl -d " { \"appId\" : \"com.com2us.hivesdk.freefull.google.global.android.common\", \"logBody\" : [ { \"category\" : \"hivesdk_levelup_log\", \"dateTime\" : \"2017-07-24 16:46:36\", \"timezone\" : \"GMT+09:00\", \"guid\" : \"xxxx\" } ] }" -X POST https://sandbox-analytics-log.withhive.com/v1/server-recv
요청¶
> POST /v1/server-recv HTTP/1.1
> Host: sandbox-analytics-log.withhive.com
> User-Agent: curl/7.55.1
> Accept: */*
> Content-Length: 208
> Content-Type: application/x-www-form-urlencoded
>
{
"appId" : "com.com2us.hivesdk.freefull.google.global.android.common",
"logBody" : [
{
"category" : "test",
"dateTime" : "2017-07-24 16:46:36",
"timezone" : "GMT+09:00",
"guid" : "xxxx"
}
]
}
응답¶
< HTTP/1.1 200 OK
< Server: nginx
< Date: Tue, 12 Nov 2019 09:36:55 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: close
< {"success":true}
- HTTP 응답 상태 코드가 200일 경우 로그 전송 성공, 아닐 경우 전송 실패입니다.
키 | 타입 | 값 | 설명 |
---|---|---|---|
success | boolean | false | HTTP 상태 코드가 200이 아닐 경우 false로 고정 |
message | String | 별도 표기 | 에러별 메세지 표기 |
requestBody | String | 요청값 | 전송된 로그 원본 |
- Message 필드에 나타나는 에러 코드는 다음과 같습니다.
메시지 | 설명 |
---|---|
no json body | 파라미터 없음 |
json parse error | JSON 형식 오류 |
json format error = required field {col} not found | 필수 컬럼({col}) 이 없음 |
[logBody] json format error = required field {logBody.col} not found | logBody내 필수 컬럼 ({logBody.col}) 없음 |
unknown category key : | 지원되지 않는 category 사용 |