[]
행 데이터 동기화 외에도 원격 테이블은 열 정의를 서버와 동기화할 수 있습니다.
이를 통해 다음이 가능합니다.
동적 열 생성
열 속성 업데이트
열 제거
중앙 집중식 스키마 관리
열 작업에는 해당 원격 엔드포인트가 필요합니다.
열을 원격으로 관리하려면 다음을 구성합니다.
getColumns
addColumn
updateColumn
removeColumn
예제:
const orders = dataManager.addTable("orders", {
remote: {
read: {
url: "http://localhost:3000/api/orders",
method: "GET"
},
getColumns: {
url: "http://localhost:3000/api/orders/columns",
method: "GET"
},
addColumn: {
url: "http://localhost:3000/api/orders/columns",
method: "POST"
},
updateColumn: {
url: "http://localhost:3000/api/orders/columns",
method: "PUT"
},
removeColumn: {
url: "http://localhost:3000/api/orders/columns",
method: "DELETE"
}
},
autoSync: true
});
orders.fetch();getColumns는 서버에서 열 정의를 가져옵니다.
일반적인 사용 사례:
원격 저장소에서 스키마 초기화
클라이언트와 서버의 열 구조 일치 보장
응답은 데이터 매니저와 호환되는 열 정의 목록을 반환해야 합니다.
열 구조에 대한 자세한 내용은 API 참조에 설명되어 있습니다.
테이블 시트에서 새 열이 정의되면 원격 요청이 전송됩니다.
단일 동기화 모드에서는:
요청이 즉시 전송됩니다.
서버가 새 열 정의를 저장합니다.
일괄 모드에서는:
변경 사항이 로컬에 저장됩니다.
열 변경 사항은 submitChanges() 중에 전송됩니다.
열 속성이 수정되면:
캡션
데이터 형식
기본값
기본 키 플래그
해당 원격 엔드포인트가 호출됩니다.
단일 동기화 모드에서는:
즉시 전송됩니다.
일괄 모드에서는:
저장되었다가 다른 변경 사항과 함께 제출됩니다.
열이 제거되면:
서버는 해당 열 정의를 삭제해야 합니다.
연결된 데이터 동작은 서버 구현에 따라 달라집니다.
단일 동기화 모드에서는:
즉시 요청됩니다.
일괄 모드에서는:
일괄 payload에 포함됩니다.
batch: true가 활성화된 경우:
행 변경 사항과 열 변경 사항이 결합됩니다.
submitChanges()는 모든 수정 사항을 함께 전송합니다.
가능하면 서버는 일괄 처리를 원자적으로 처리해야 합니다.
예제 제출 흐름:
orders.submitChanges();보류 중인 변경 사항 취소:
orders.cancelChanges();일괄 payload에는 다음이 포함될 수 있습니다.
addColumn
updateColumn
removeColumn
insert
update
delete
정확한 요청 구조는 API 참조에 정의되어 있습니다.
URL 구성을 사용하는 대신 작업을 함수로 정의할 수 있습니다.
const orders = dataManager.addTable("orders", {
remote: {
read: function () {
return Promise.resolve([...]);
},
addColumn: function (change) {
return Promise.resolve(change);
}
},
autoSync: true
});이를 통해 다음이 가능합니다.
사용자 지정 전송 로직
미들웨어 통합
Mock 구현
참고:
함수 처리기는 내보내기 중 직렬화할 수 없습니다.
원격 열 동기화에는 다음이 필요합니다.
일관된 열 식별자(value)
열 저장을 위한 서버 측 지원
데이터 형식 변경에 대한 올바른 처리
서버 유효성 검사에 실패하면:
작업은 오류를 반환해야 합니다.
테이블 상태는 실패 결과를 반영합니다.
서버 측 스키마 적용은 애플리케이션별로 다릅니다.