/
type : event

type : event

Event Type

ICE 내부 특정 NodeType에 정의된 Event를 실행하기 위한 API 유형으로, 다음과 같은 추가적인 항목을 정의한다.

pid

valueType

description

pid

valueType

description

tid

REFERENCE

대상 Node Type

event

REFERENCE

대상 노드타입의 실행하기 위한 Event 정의

 

아래는 좋아요 카운트 증가하는 "actionType": "service" 인 EVENT API 구현 사례이다.

  • Service Class 추가

    • location : net/ion/ice/services

  • @Service 어노테이션 추가

    • @Service("snackService")

  • Event에 사용할 메소드는 반드시 ExecuteContext 를 매개변수로 갖는다.

@Service("snackService") public class SnackService { public void increaseCount(ExecuteContext context) { Node node = context.getNode(); node.put("thumbsUp", context.getNode().getIntValue("thumbsUp") + 1); NodeUtils.getNodeService().executeNodeByNode(node, EventService.UPDATE, context.getEvent()); } }
  • snack Schema에 event 추가

    • "actionBody": "snackService.increaseCount" : 작성규칙 {service annotation name}.{method}

[ { "typeId": "nodeType", "tid": "snack", "parentId": "test", "repositoryType": "node", "typeName": "간식", "standaloneIndex": false, "microservice": "test", "propertyTypes": [ { "pid": "id", "name": "ID", "valueType": "STRING", "idable": true, "indexable": true, "labelable": false, "required": true, "idType": "", "orderNo": 10 }, { "pid": "name", "name": "Name", "valueType": "STRING", "idable": false, "indexable": true, "analyzer": "simple", "labelable": true, "required": true, "orderNo": 20 }, { "pid": "vendor", "name": "vendor", "valueType": "STRING", "idable": false, "indexable": true, "analyzer": "code ", "labelable": false, "required": false, "orderNo": 30 }, { "pid": "tags", "name": "tags", "valueType": "STRING", "idable": false, "indexable": true, "analyzer": "code", "labelable": false, "required": false, "orderNo": 40 }, { "pid": "thumbsUp", "name": "따봉", "valueType": "INT", "indexable": true, "defaultValue": 0, "orderNo": 50 } ], "events": [ { "event": "thumbsUpEvent", "name": "thumbs Up Event", "label": "thumbs Up Event", "noneExecute": false, "eventActions": [ { "action": "increaseCount", "actionName": "increaseCount", "actionType": "service", "actionBody": "snackService.increaseCount", "order": 1 } ] } ] } ]
  • apiConfig "type": "event" 인 API 작성

{ "typeId": "api", "category": "snack", "apiId": "thumbsUp", "apiName": "좋아요", "method": "GET", "parameters": [ { "parameter": "id", "name": "ID", "valueType": "STRING", "required": true } ], "statistic": true, "aggregation": false, "root": { "configId": "root", "tid": "snack", "type": "event", "allowParams": false, "orderNo": 1, "event": "thumbsUpEvent" } }
  • API 결과

 

Related content

자동 생성 API
자동 생성 API
Read with this
Event
More like this
설정 API
설정 API
Read with this
Microservice 만들기
Microservice 만들기
More like this
type : query
type : query
Read with this
apiCategory
apiCategory
Read with this