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}}