2.센터 API 연동 규격서(old ver)

Edit

2.1개요

2.1.1설명

그림 2-1시나리오 편집기 내재화 시스템구성도

2.1.2멀티 인스턴스(Multi Instance)

2.1.3지원 목록

2.1.4선결 과제

2.2API

2.2.1SSO 인증

Header 의 Authorization 필드에 SSO 토큰 값으로 인증이 됩니다.
[Request]
[MOTHOD] [PATH]
[Header]
Authorization: Bearer 토큰
[SAMPLE]
curl  -H "Authorization: Bearer eyAiYWxnIjogIkhTMjU...hfrTUXE4bX5to"  \
-X GET  \
  http://127.0.0.1:8600/server/list
[Response]

타입

필수

설명

code

text

Y

코드정보

message

text

Y


* 응답  성공
{ "code": "200", "message": "OK" , ...}
* 응답 실패(400)
{ "code": "401", "message": "Unauthorized" }

2.2.2서버정보관리

시나리오 편집기가 실행될 서버 리스트를 관리 한다.

2.2.2.1서버정보 등록

POST /server/create
[Header]
Authorization: Bearer 토큰
[Parameter]

타입

필수

설명

server_name

text(20)

Y

서버이름 (유니트한 값)

최대 20자이며 [A-Za-z0-9_]{1,20}에 해당해야 합니다.

ip

text(35)

Y

IP Address (IPV4 만 지원)

port

int(5)

N

서버 API 포트 기본값(8600)

is_https

bool

N

기본값 (false)

desc

text(100)

N

상세 설명

[SAMPLE]
curl -H "Authorization: Bearer eyAiYWxnIjogIkhT...d8b2Thw" \
-X POST -H "Content-type: application/json" \
-d \
'{"server_name":"server1","ip":"127.0.0.1","desc":"테스트서버1" }' \
http://127.0.0.1:8600/server/create
* 응답
[Response]

타입

필수

설명

code

text

Y

코드정보

message

text

N


* 응답
{ 
    "code": "200", 
    "message": "OK" 
}

2.2.2.2서버정보 삭제

POST /server/delete
[Header]
Authorization: Bearer 토큰
[Parameter]

타입

필수

설명

server_name

text(20)

Y

서버이름 (유니트한 값)

desc

text(100)

N

상세 설명

[SAMPLE]
curl -H "Authorization: Bearer eyAiYWxnIjogIkhT...d8b2Thw" \
-X POST -H "Content-type: application/json" \
-d \
'{"server_name":"server1","desc":"테스트서버1 삭제" }' \
http://127.0.0.1:8600/server/delete
* 응답
[Response]

타입

필수

설명

code

text

Y

코드정보

message

text

N


* 응답
{ 
    "code": "200", 
    "message": "OK" 
}

2.2.2.3서버정보 리스트

GET /server/list
[Header]
Authorization: Bearer 토큰
[Parameter]

NONE

[SAMPLE]
curl -H "Authorization: Bearer eyAiYWxnIjogIkhT...d8b2Thw" \
-X GET \
"http://127.0.0.1:8600/server/list"
* 응답
[Response]


타입

필수

설명

code


text

Y

결과 코드정보

message


text

N


list


array

-



server_name

text

-

서버이름


ip

text

-

IP Address (IPV4 만 지원)


port

int

-

API 포트


is_https

bool

-

https 적용여부


desc

text

-

상세 설명


update_time

text

-

변경일

* 응답
{
  "code": "200",
  "message": "OK",
  "list": [
    {
      "server_name": "server1",
      "ip": "10.10.10.1",
      "port": 8600,
      "is_https": false,
      "desc": "테스트 서버1",
      "update_time": "2024-01-17 13:55:17"
    },
    {
      "server_name": "server2",
      "ip": "10.10.10.2",
      "port": 8600,
      "is_https": false,      
      "desc": "테스트 서버2",
      "update_time": "2024-05-16 14:15:40"
    }
  ]
}

2.2.3테넌트 관리

2.2.3.1시나리오 편집기 생성

테넌트의 시나리오 편집기를 생성한다.

[Request]
POST /editor/create
[Header]
Authorization: Bearer 토큰
[Parameter]

타입

필수

설명

tenant_id

int(5)

Y

테넌트 ID

server_name

text(20)

Y

서버정보 등록 에 등록된 서버명

is_https

bool

N

Https 사용 유무 ( true or false), 기본값은 false

desc

text(100)

N

상세 설명

[SAMPLE]
curl -H "Authorization: Bearer eyAiYWxnIjogIkhT...d8b2Thw" \
-X POST -H "Content-type: application/json" \
-d \
'{"tenant_id":1, "server_name":"server1","desc":"테넌트1 편집기"}' \
http://127.0.0.1:8600/editor/create
[Response] 조직도 배열

타입

필수

설명

code

text

Y

코드정보

message

text

N


* 응답
{ 
    "code": "200", 
    "message": "OK" 
}

2.2.3.2시나리오 편집기 정보 수정

[Request]
POST /editor/update
[Header]
Authorization: Bearer 토큰
[Parameter]

타입

필수

설명

tenant_id

int(5)

Y

테넌트 ID

server_name

text(20)

Y

서버정보등록 에 등록된 서버명

is_https

bool

Y or N

Https 사용 유무 ( true or false), 기본값은 false

desc

text(100)

Y or N

상세 설명

[SAMPLE]
curl -H "Authorization: Bearer eyAiYWxnIjogIkhT...d8b2Thw" \
-X POST -H "Content-type: application/json" \
-d \
'{"tenant_id":1, "server_name":"server1","desc":"테넌트1 편집기"}' \
http://127.0.0.1:8600/editor/update
[Response] 조직도 배열

타입

필수

설명

code

text

Y

코드정보

message

text

N


* 응답
{ 
    "code": "200", 
    "message": "OK" 
}

2.2.3.3시나리오 편집기 정보 삭제

[Request]
POST /editor/delete
[Header]
Authorization: Bearer 토큰
[Parameter]

타입

필수

설명

tenant_id

int(5)

Y

테넌트 ID

server_name

text(20)

Y

서버정보등록 에 등록된 서버명

desc

text(100)

Y or N

상세 설명

[SAMPLE]
curl -H "Authorization: Bearer eyAiYWxnIjogIkhT...d8b2Thw" \
-X POST -H "Content-type: application/json" \
-d \
'{"tenant_id":1, "server_name":"server1","desc":"테넌트1 편집기 삭제"}' \
http://127.0.0.1:8600/editor/delete
[Response] 조직도 배열

타입

필수

설명

code

text

Y

코드정보

message

text

N


* 응답
{ 
    "code": "200", 
    "message": "OK" 
}

2.2.3.4시나리오 편집기 리스트

GET /editor/list
[Header]
Authorization: Bearer 토큰
[Parameter]

타입

필수

설명

server_name

text(20)

Y

서버정보등록 에 등록된 서버명

tenant_id

int(5)

N

테넌트 ID 값

[SAMPLE]
curl -H "Authorization: Bearer eyAiYWxnIjogIkhT...d8b2Thw" \
-X GET \
"http://127.0.0.1:8600/editor/list?server_name=server1"
* 응답
[Response]


타입

필수

설명

code


text

Y

결과 코드정보

message


text

N


list


array

-

시나리오 편집기 정보 배열


tenant_id

int

-

테넌트 ID 값


server_name

text

-

서버이름


port

int

-

port 정보


is_https

bool

-

https 사용유무


desc

text

-

상세 설명


update_time

text

-

변경일

* 응답
{
  "code": "200",
  "message": "OK",
  "list": [
    {
      "tenant_id": 1,
      "server_name": "server1",
      "port": 1882,
      "is_https": false,
      "desc": "테넌트1",
      
    },
    {
      "tenant_id": 2,
      "server_name": "server1",
      "port": 1884,
      "is_https": false,
      "desc": "테넌트2",
      
    }
  ]
}
* 응답 실패(400)
{ "code": "404", "message": "Not Found" }

2.2.4시나리오편집기 관리

2.2.4.1시나리오 편집기 시작

테넌트의 시나리오 편집기를 시작한다.

[Request]
POST /editor/start
[Header]
Authorization: Bearer 토큰
[Parameter]

타입

필수

설명

tenant_id

int(5)

Y

테넌트 ID

desc

text(100)

N

상세 설명

[SAMPLE]
curl -H "Authorization: Bearer eyAiYWxnIjogIkhT...d8b2Thw" \
-X POST -H "Content-type: application/json" \
-d \
'{"tenant_id":"1", "desc":"테넌트1 편집기 시작"}' \
http://127.0.0.1:8600/editor/start
[Response] 조직도 배열

타입

필수

설명

code

text

Y

코드정보

message

text

N


* 응답
{ 
    "code": "200", 
    "message": "OK" 
}

2.2.4.2시나리오 편집기 종료

[Request]
POST /editor/stop
[Header]
Authorization: Bearer 토큰
[Parameter]

타입

필수

설명

tenant_id

int(5)

Y

테넌트 ID

desc

text(100)

N

상세 설명

[SAMPLE]
curl -H "Authorization: Bearer eyAiYWxnIjogIkhT...d8b2Thw" \
-X POST -H "Content-type: application/json" \
-d \
'{"tenant_id":"1", "desc":"테넌트1 편집기 종료"}' \
http://127.0.0.1:8600/editor/stop
[Response] 조직도 배열

타입

필수

설명

code

text

Y

코드정보

message

text

N


* 응답
{ 
    "code": "200", 
    "message": "OK" 
}

2.2.4.3시나리오 편집기 상태

GET /editor/status
[Header]
Authorization: Bearer 토큰
[Parameter]

타입

필수

설명

server_name

text(20)

Y

서버정보등록 에 등록된 서버명

tenant_id

int(5)

N

테넌트 ID 값 (존재할 경우 하나의 객체만 리턴된다)

[SAMPLE]
curl -H "Authorization: Bearer eyAiYWxnIjogIkhT...d8b2Thw" \
-X GET \
"http://127.0.0.1:8600/editor/status?server_name=server1"
* 응답
[Response]


타입

필수

설명

code


text

Y

결과 코드정보

message


text

N


list


array

-

시나리오 편집기 상태 정보 배열


server_name

text


서버이름


tenant_id

int

-

테넌트 ID 값


status

text

-

상태 정보 ( start, stop )

* 응답
{
  "code": "200",
  "message": "OK",
  "list": [
    {
      "tenant_id": 1,
      "status": "start",
    },
    {
      "tenant_id": 2,
      "status": "stop"
    }
  ]
}
* 응답 실패(400)
{ "code": "404", "message": "Not Found" }

2.3코드 정의

2.3.1오류 코드

code

message

설명

0


정상코드

400

ForbiddenException

권한 없음

401

UnauthorizedException

인증 실패

404

[Error]Not found!

찾기 실패




411

[Error] message invalid.

메시지 타입 오류

412

[Error] duplicate (server_name)

서버명 중복 오류

413

[Error] Not found (server).

서버 Not found.

414

[Error] The editor exists on the server.

서버에 편집기 정보가 존재한다.

415

[Error] duplicate (tenant)

tenant 정보 중복

416

[Error] parameter error(server_name)

SERVER NAME 오류

417

[Error] parameter error(ip)

IP 오류

418

[Error] Not found (editor).

시나리오편집기 못참음

419

[Error] parameter error(tenant_id)

TENANT ID 오류

421

[Error] Not found (tenant)

Tenant 존재하지 않음

424

[Error] Access Denied

권한없음

431

[Error] parameter error(max count)

최대 요청 개수 초과




441

[Error] The editor is running.

편집기가 실행중

442

[Error] An error occurred when running the editor.

실행 오류

443

[Error] The editor is not running.

편집기가 실행중 아님

501

[Error] Server DB (server)

서버 DB 오류

502

[Error] Server DB (editor)

서버 DB 오류




600

FailedToSendMessageException

메시지 전송 실패

601

InternalSystemErrorException

내부 시스템 에러