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 사용 |