콘텐츠로 이동

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