[]
원격 테이블은 서버에서 데이터를 가져오며, 선택적으로 변경 사항을 다시 서버와 동기화할 수 있습니다.
메모리 테이블과 달리 원격 테이블은 fetch()가 실행되기 전까지 데이터를 포함하지 않습니다.
원격 테이블은 다음을 지원합니다.
서버 측 데이터 로드
데이터 동기화(단일 또는 일괄 모드)
스키마 매핑
여러 응답 프로토콜
원격 테이블의 최소 요구 사항은 read 구성입니다.
표준화된 products 데이터 집합을 사용하는 예제:
const dataManager = spread.dataManager();
const products = dataManager.addTable("products", {
remote: {
read: {
url: "https://demodata.mescius.io/northwind/api/v1/products",
method: "GET"
}
}
});이 시점에서 테이블 구조는 정의되었지만 아직 레코드는 포함되어 있지 않습니다.
모든 테이블은 추가 작업 전에 fetch()를 호출해야 합니다.
orders.fetch();fetch()를 호출하지 않으면 테이블은 비어 있는 상태로 유지됩니다.
예제:
orders.fetch().then(function () {
const view = orders.addView("orderView");
});fetch()는 다음 작업을 수행합니다.
원격 데이터 가져오기
스키마 적용
내부 상태 초기화
모든 원격 작업은 완료된 fetch에 의존합니다.
원격 응답에는 필드 매핑 또는 형식 변환이 필요할 수 있습니다.
예제:
const products = dataManager.addTable("products", {
remote: {
read: {
url: "https://demodata.mescius.io/northwind/api/v1/products"
}
},
schema: {
columns: {
id: { dataName: "ProductId" },
name: { dataName: "ProductName" },
price: { dataName: "UnitPrice", dataType: "number" },
stock: { dataName: "UnitsInStock", dataType: "number" }
}
}
});스키마 구성은 스키마섹션에 설명되어 있습니다.
데이터 쓰기 저장을 활성화하려면 추가 원격 작업을 정의해야 합니다.
예제(단일 동기화 모드):
const products = dataManager.addTable("products", {
remote: {
read: { url: "https://example.com/api/products", method: "GET" },
create: { url: "https://example.com/api/product", method: "POST" },
update: { url: "https://example.com/api/product", method: "PUT" },
delete: { url: "https://example.com/api/product", method: "DELETE" }
},
autoSync: true
});동기화 모드는 다음에서 설명합니다.
→ 동기화 모드
원격 테이블은 다음을 지원합니다.
표준 JSON 응답
REST 어댑터
OData
OData v4
GraphQL
프로토콜 구성은 다음에 설명되어 있습니다.