/
type : event
type : event
Event Type
ICE 내부 특정 NodeType에 정의된 Event를 실행하기 위한 API 유형으로, 다음과 같은 추가적인 항목을 정의한다.
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 결과
, multiple selections available,
Related content
자동 생성 API
자동 생성 API
Read with this
Event
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