자동 생성 API

자동 생성 API는 내부 통신에서만 사용되는 API이며, 새로운 NodeType을 만들면 자동으로 생성되는 5개의 Event( Create,Update,Delete,Read,List)를 포함한 모든 이벤트에 대해서 직접 호출 할 수 있는 API이다.

 

API 호출 패턴

자동 생성 API는 아래 형태로 호출할 수 있다.

{{protocol}}://{{hostname}}:{{port}}/{{apiType}/{{nodeType}}/{{event}}

ApiType

apiType

  • service, open : 자동 생성 API 사용 불가능. 설정 API 만 사용 가능.

  • others (admin, manager, external, internal) : 자동 생성 API사용 가능.

{{protocol}}://{{hostname}}:{{port}}/adm/content/list

{{protocol}}://{{hostname}}:{{port}}/mng/content/list

{{protocol}}://{{hostname}}:{{port}}/ext/content/list

{{protocol}}://{{hostname}}:{{port}}/int/content/list

 

API 호출 Method

자동 생성 API는 해당 이벤트의 유형에 따라서 사용가능한 Method가 다음과 같이 제한된다.

Command형 이벤트

  • Event의 noneExecutefalse인 이벤트는 POST 메소드만 호출 가능

  • create, update, delete

POST {{protocol}}://{{hostname}}:{{port}}/{{apiType}}/content/create

POST {{protocol}}://{{hostname}}:{{port}}/{{apiType}}/content/update

 

Query형 이벤트

  • Event의 noneExecutetrue인 이벤트는 POSTGET 둘다 허용

  • read, list

 

인증

자동 생성 API는 내부에서만 사용해야하기 때문에 인증 토큰과 로그인 세션이 없는 호출은 모두 401 에러를 발생한다.

{{protocol}}://{{hostname}}:{{port}}/mng/testEvent/create { "result": "401", "resultMessage": "로그인이 필요합니다." }

 

토큰 발행 & 토큰 인증

로그인

  • required Param : id, password

 

  • 로그인 전

{ "result": "200", "resultMessage": "SUCCESS", "item": { "code": "unsigned", "role": [ "anonymous" ], "lastAccessTime": 1603086688059, "sessionKey": "ChajS7UWvDnf5AP2p8-B3QZpT7Z-E-eFnzts5UHPHkyP4HtAqkaGU5zCSb3Lm922IqzMNcWgd2MpDlPbBFmiug", "contextPath": "adm", "siteId": null, "projectId": "dxp" } }
  • 로그인 후

{ "result": "200", "resultMessage": "SUCCESS", "item": { "code": "signed", "role": [ "admin::system", "system", "role::system", "system", "adminGroup::system", "system", "admin", "anonymous" ], "lastAccessTime": 1603086697514, "sessionKey": "ChajS7UWvDnf5AP2p8-B3QZpT7Z-E-eFnzts5UHPHkyP4HtAqkaGU5zCSb3Lm922IqzMNcWgd2MpDlPbBFmiug", "contextPath": "adm", "admin": { "id": "system", }, "userId": "admin::system", "securityAgreement": false, "siteId": null, "userType": "admin", "userRole": "system", "projectId": "dxp" } }