/setting API

설정관련 URL 은 아래와 같다.

http://{M2-IP:env.manager.api.port}/setting/...

See also

  • env.manager.api.port - api

로컬 설정 배포

수정된 로컬설정파일 /usr/local/m2/setting.json 을 서비스에 반영한다.

GET /setting/deploy/local

Response code

설명

200

호출됨. 응답 Body의 status 로 결과 제공
  • OK 성공

  • Fail 실패

env 를 제외한 모든 설정을 무중단으로 서비스에 반영된다.

Note

설정이 배포될 때마다 info 에 변경사항이 기록된다.

설정 확인

서비스 중인 설정파일을 확인한다.

GET /setting/setting.json

Response code

설명

200

성공

404

setting.json 이 로딩되지 않았음 (최초 로딩시)

설정 다운로드

현재 로딩된 설정 패키지를 다운로드 한다.

GET /setting/download

Response code

설명

200

성공

404

실패. 설정백업 내역은 존재하나 백업파일을 찾을 수 없음

406

실패. 설정백업 기능이 비활성화되어 있음

500

실패. 설정백업 히스토리를 찾을 수 없음

응답헤더 Content-Typeapplication/x-compressed 이다.

HTTP/1.1 200 OK
...
Content-Type: application/x-compressed

설정 업로드

설정패키지를 POST/form-data 방식으로 업로드 한다.

POST /setting/upload
Content-Length: 16455
Content-Type: multipart/form-data; boundary=......

Response code

설명

200

성공

500

실패

Content-Length 헤더와 Content-Type: multipart/form-data 헤더가 명확하게 선언되어 있어야 한다. 업로드가 완료되면 압축을 해지한 뒤 전체 설정을 갱신한다.

Multipart방식에서는 settingFile 을 기본 이름으로 사용한다.

<form enctype="multipart/form-data" action="http://127.0.0.1:10040/setting/upload" method="POST">
    <input name="settingFile" type="file" />
    <input type="submit" value="Upload" />
</form>

API를 이용해 설정을 변경한다. 정상적으로 반영된 경우 200 OK 로 응답하지만, 실패한 경우 500 Internal Server Error 로 응답한다.

{
   "version": "22.2.0",
   "method": "/setting/upload",
   "status": "fail",
   "error": 1,
   "reason": null
 }

result 에러코드는 다음과 같다.

error

설명

0

성공

1

업로드 설정패키지가 존재하지 않는다.

2

설정패키지 압축 해제를 실패 했다.

3

setting.json 파일이 로딩 되지 않는다.

4

setting.json 파일의 내용이 잘못되었다. 잘못된 영역은 reason 에 명시된다.

5

리소스 파일이 존재하지 않는다. 경로는 reason 에 명시된다.

설정 유효성 검사

설정 업로드 와 동일하게 파일을 업로드 하지만 서비스에 반영하지 않고 유효성만 검사한다.

POST /setting/validate
Content-Length: 16455
Content-Type: multipart/form-data; boundary=......

Response code

설명

200

성공

500

실패

응답은 설정 업로드 와 완전히 동일하다.

설정 백업

현재 로딩된 설정을 백업한다.

GET /setting/deploy/backup

Response code

설명

200

응답 Body의 status 로 결과 제공
  • OK 성공

  • Fail 실패

See also

설정 히스토리

과거 로딩된 설정 목록을 조회한다.

GET /setting/history

Response code

설명

200

응답 Body의 history 로 결과 제공

응답헤더 Content-Typeapplication/json 이다.

{
    "history": [
        {
            "id":1,
            "conf-date":"2020-05-05",
            "conf-time":"09:00:00",
            "type":"loaded",
            "size":8042,
            "hash":"20200505_090000_568c17d39e16f820e87974ca703e3c05",
            "ver":"1.0.0"
        }
    ]
}

See also

설정 되돌리기

과거 설정으로 되돌린다.

GET /setting/restore/:hash-id

Response code

설명

200

응답 Body의 status 로 결과 제공
  • OK 성공

  • Fail 실패

응답헤더 Content-Typeapplication/json 이다.

{
    "version": "1.4.2",
    "method": "reloadall",
    "status": "OK",
    "result": 0
}

result 에러코드는 다음과 같다.

error

설명

0

성공

1

HASH-ID에 해당하는 설정패키지가 존재하지 않는다..

2

설정패키지 압축 해제를 실패 했다.

3

setting.json 파일이 로딩 되지 않는다. 이유는 reason 필드에 노출된다.

4

setting.json 파일의 내용이 잘못되었다. 이유는 reason 필드에 노출된다.

See also

라이선스 교체 (무중단 API)

POST 메소드로 라이선스를 업로드하여 중단없이 교체한다.

POST /setting/license/update
POST /setting/license/update?force=true

# force 옵션이 없다면 key 값을 넣어 다시 호출해준다.
GET /setting/license/update?confirm={key}

Note

curl 예제는 다음과 같다.

curl -X POST -F "file=@temp.xml" http://127.0.0.0/setting/license/update
curl --location 'http://127.0.0.1/setting/license/update' --header 'Content-Type: application/xml' --data '<License>...</License>'

Response code

설명

200

응답 Body의 status 로 결과 제공
  • OK 성공

  • Fail 실패

응답헤더 Content-Typeapplication/json 이다.

# 라이선스 교체가 되는 경우 변경내용을 고지한다.
{
    "key": "license__cbezHbcy",
    "diff": {
        "SerialNumber": {
            "_asis_": "KR12345678",
            "_tobe_": "KR87654321"
        },
        ...
    }
}

# 동일 라이선스
{
    "key": "license__cbezHbcy",
    "diff": {}
}

# 업데이트 성공
{
    "message": "Done"
}

실패 메시지는 아래와 같다.

# XML 포맷이 아닌 경우
{
    "message": "Cannot parse license - Non-whitespace before first tag.\nLine: 0\nColumn: 1\nChar: {"
}

# Signature 검증 실패
{
    "message": "Invalid signature"
}

# 만료된 라이센스
{
    "message": "Expired license"
}