...
| Code Block |
|---|
| language | js |
|---|
| theme | Emacs |
|---|
| title | 에디터 설정 |
|---|
|
// SEModel(json 타입)로 에디터 열기
window.editor = new SynapEditor(editorId, that.editorConfig);
window.editor.openSEModel(json); // db에서 꺼내온 json
var documentComparisonPlugin = window.editor.plugins.documentComparison;
if (documentComparisonPlugin) {
documentComparisonPlugin.addListParam('docId', docId); // addListParam: 문서이력 목록조회 API(ex:'/getDocumentVersionList')의 param을 추가합니다.
}
// 모델로 저장하기
var json = window.editor.getBodyModelJSON(true);
// 문서 이력 데이터 저장 API(ex:/saveDocumentVersionData)로 json(SEModel: 에디터모델)을 전송 |
DB 스키마 설정 예시
DB 스키마 설정은 예시로 제공되며 고객사에서 원하는 형태로 구성하는 것을 권장 드립니다.
| 컬럼 이름 | 필수 여부 | 타입 | 속성 | 기본값 | 설명 |
|---|
| id | Y | BIGINT(20) 또는 VARCHAR(100) | Not Null | - | 각 문서 버전 기록의 고유 식별자(ex: 게시글 이력) |
| user_name | Y | VARCHAR(255) | Not Null | - | 문서 버전을 생성한 사용자의 이름 |
| doc_id | Y | BIGINT(20) 또는 VARCHAR(255) | Not Null | - | 문서 번호(ex: 게시글 번호) |
| json | Y | LONGTEXT | Not Null | - | 문서 모델 JSON 데이터 - getBodyModelJSON() 로 추출한 JSON 데이터 |
| created_at | Y | DATETIME | Not Null | CURRENT_TIMESTAMP() | 버전 생성 시각 |
문서 이력 리스트 조회
[request]
문서 이력 리스트 조회를 위해 지정된 고객 시스템의 URL로 에디터에서 조회를 요청합니다. 이 URL은 앞서 설정된 ‘documentComparison.config’ 항목의 ‘list’-’url’값에 해당합니다.
| Code Block |
|---|
|
Request URL: http://hostname/getDocumentVersionList
Request Method: POST |
| 키 | 설명 | 필수 | 타입 |
|---|
| doc_id | 문서 번호(ex: 게시글 번호) | O | String 또는 Int |
[response]
문서의 이력 리스트 조회 시, 고객사에서는 아래와 같은 응답을 돌려주어야 합니다.
| Code Block |
|---|
|
[
{
"id":"1",
"date":"2024-12-23 10:39:04",
"author":"synap"
},
{
"id":"2",
"date":"2024-12-23 11:21:31",
"author":"synap"
},
] |
| 키 | 설명 | 타입 |
|---|
| id | 이력 번호 | String 또는 Int |
| date | 이력 생성 날짜 | Date |
| author | 이력 작성자 | String |
문서 개별 이력 조회
[request]
문서의 개별 이력 조회를 위해 지정된 고객 시스템의 URL로 에디터에서 조회를 요청합니다. 이 URL은 앞서 설정된 ‘documentComparison.config’ 항목의 ‘data’-’url’값에 해당합니다.
| Code Block |
|---|
|
Request URL: http://hostname/getDocumentVersionData
Request Method: POST |
| 키 | 설명 | 필수 | 타입 |
|---|
| id | 문서 이력 번호(ex: 게시글 히스토리 번호) | O | String 또는 Long |
[response]
문서의 개별 이력 조회 시, 고객사에서는 아래와 같은 응답을 돌려주어야 합니다.
| Code Block |
|---|
| theme | Emacs |
|---|
| title | getBodyModelJSON() |
|---|
| collapse | true |
|---|
|
{
"id": "se_4f57d485-ef9c-4613-aa3c-1c94849b37a6",
"type": "Body",
"fromHTMLBuilder": false,
"style": {},
"children": [
{
"style": {},
"children": [
{
"text": "열매 생산을 자극할 뚜렷한 건기가 있는 곳에서만",
"isEmoji": false,
"style": {},
"id": "se_b4186c3c-04f1-4dca-910f-d60c7b419a1d",
"type": "TextRun"
}
],
"id": "se_70b77667-0cb9-4f6d-99ae-40da3143ea43",
"className": "",
"type": "Paragraph",
"fromHTMLBuilder": false,
"defaultStyle": {
"margin": {
"top": 16,
"left": 0,
"right": 0,
"bottom": 16
},
"display": "block",
"overflowWrap": "break-word"
},
"tagName": "P",
"endRunStyle": {}
}
],
"pageInfo": {
"fixedWidth": false,
"padding": {
"left": 23,
"right": 23,
"top": 18,
"bottom": 18
}
},
"styleSheet": "",
"linkTagStr": "",
"scriptStrs": []
} |
| 키 | 설명 | 타입 |
|---|
| json | getBodyModelJSON()으로 저장된 에디터 본문 이력 데이터 | JSON Object 또는 JSON String |
문서 개별 이력 삭제
[request]
문서 개별 이력 삭제를 위해 지정된 고객 시스템의 URL로 에디터에서 삭제를 요청합니다. 이 URL은 앞서 설정된 ‘documentComparison.config’ 항목의 ‘data’-’url’값에 해당합니다.
| Code Block |
|---|
|
Request URL: http://hostname/getDocumentVersionData
Request Method: DELETE |
| 키 | 설명 | 필수 | 타입 |
|---|
| id | 문서 이력 번호(ex: 게시글 히스토리 번호) | O | String 또는 Long |
문서 이력 데이터 저장
문서 이력 데이터 저장의 경우 고객사의 서버 환경 구성에 맞게 설정을 필요로 하기에 별도의 설정 및 API를 제공하고 있지 않습니다.
이 아래 예시는 위의 DB 스키마 구조로 작성된 예시입니다.
[request]
| 키 | 설명 | 타입 |
| doc_id | 문서 번호 | String 또는 Int |
| id | 이력 번호 | String 또는 Int |
| created_at | 이력 생성 날짜 | Date |
| user_name | 이력 작성자 | String |
| json | 문서 모델 JSON 데이터 - getBodyModelJSON() 로 추출한 JSON 데이터 | LONGTEXT |