History 기능
History 제공 (historyable)
특정 노드타입의 히스토리 관리 기능을 제공하고 싶은 경우 historyable 속성을 true로 설정하여야 합니다.
히스토리 저장
히스토리 제공 노드타입(historyable=true)의 노드에 event가 발생하여 데이터가 변경되면 신규 히스토리 버전이 생성 및 저장됩니다. 각 히스토리는 다음과 같은 항목으로 이루어져 있습니다
historyId : 히스토리 ID 값 - 해당 노드의 ID + _ + 버전 으로 구성
id : 노드의 아이디
event : 데이터 변경이 발생한 이벤트
triggerEvent : 다른 이벤트 실행 과정에서 해당 이벤트를 발생시킨경우에 이전 이벤트를 표시
version : 해당 히스토리 버전
modifier : 해당 히스토리 발생 유저
changed : 해당 히스토리 생성 일시
changes : 변경 내역
properties : 해당 버전의 데이터
히스토리 조회
생성된 히스토리를 조회하기 위해서는 다음과 같은 형식의 API를 호출해야 합니다.
/adm/{{:typeId}}/history?id={{:id}}
이렇게 호출된 API 결과는 다음과 같습니다.
"items": [
{
"historyId": "test2_4",
"id": "test2",
"event": "update",
"triggerEvent": "rollback",
"version": 4,
"modifier": "system",
"changed": "20180724184414",
"changes": {
"categoryName": {
"en": "Test2"
},
"created": "2018-07-24T09:44:14.000+0000",
"changed": "2018-07-24T09:44:14.000+0000",
"testPt": "test"
},
"properties": {
"created": "2018-07-24T09:44:14.000+0000",
"changed": "2018-07-24T09:44:14.000+0000",
"categoryName": {
"en": "Test2-1"
},
"testPt": "test2",
"parentCategory": "test1",
"categoryId": "test2",
"orderNo": null,
"categoryType": "content",
"itemViews": null,
"owner": "system",
"authority": "system"
}
},
{
"historyId": "test2_3",
"id": "test2",
"event": "update",
"triggerEvent": null,
"version": 3,
"modifier": "system",
"changed": "20180724184433",
"changes": {
"categoryName": {
"en": "Test2-1"
},
"testPt": "test2"
},
"properties": {
"categoryName": {
"en": "Test2-1"
},
"testPt": "test2",
"parentCategory": "test1",
"categoryId": "test2",
"orderNo": null,
"categoryType": "content",
"itemViews": null,
"created": "2018-07-24T09:44:14.000+0000",
"owner": "system",
"changed": "2018-07-24T09:44:14.000+0000",
"authority": "system"
}
},
{
"historyId": "test2_2",
"id": "test2",
"event": "update",
"triggerEvent": null,
"version": 2,
"modifier": "system",
"changed": "20180724184426",
"changes": {
"testPt": "test"
},
"properties": {
"testPt": "test",
"parentCategory": "test1",
"categoryName": {
"en": "Test2"
},
"categoryId": "test2",
"orderNo": null,
"categoryType": "content",
"itemViews": null,
"created": "2018-07-24T09:44:14.000+0000",
"owner": "system",
"changed": "2018-07-24T09:44:14.000+0000",
"authority": "system"
}
},
{
"historyId": "test2_1",
"id": "test2",
"event": "create",
"triggerEvent": null,
"version": 1,
"modifier": "system",
"changed": "20180724184414",
"changes": {
"parentCategory": "test1",
"categoryName": {
"en": "Test2"
},
"categoryId": "test2",
"orderNo": null,
"categoryType": "content",
"itemViews": null,
"created": "2018-07-24T09:44:14.000+0000",
"owner": "system",
"changed": "2018-07-24T09:44:14.000+0000",
"authority": "system"
},
"properties": {
"parentCategory": "test1",
"categoryName": {
"en": "Test2"
},
"categoryId": "test2",
"orderNo": null,
"categoryType": "content",
"itemViews": null,
"created": "2018-07-24T09:44:14.000+0000",
"owner": "system",
"changed": "2018-07-24T09:44:14.000+0000",
"authority": "system"
}
}
] |
히스토리 롤백
과거 히스토리 버전으로의 롤백은 다음과 같은 형식의 API를 호출하면 됩니다.
/adm/{{:typeId}}/rollback?id={{:id}}&version={{:version}}