APICloud 雲端 API → C# 控制台程序 → 本地 SQLite,定時/觸發雙向同步。
GET /mcm/api/className,帶 X-APICloud-AppId、X-APICloud-AppKey、簽名驗證。limit/skip 循環拉取全量。ON CONFLICT),採用 INSERT OR REPLACE 或 MERGE 邏輯。updatedAt 最大值 / 本地同步時間戳,下次只拉取變更。// 1. 請求雲端
var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-APICloud-AppId", appId);
client.DefaultRequestHeaders.Add("X-APICloud-AppKey", sign);
var json = await client.GetStringAsync($"https://d.apicloud.com/mcm/api/{table}?limit=1000&skip={skip}");
// 2. 反序列化
var list = JsonConvert.DeserializeObject<List<T>>(json);
// 3. 批量寫入 SQLite (使用事務)
using (var conn = new SQLiteConnection(connStr))
using (var cmd = conn.CreateCommand()) {
cmd.CommandText = @"INSERT OR REPLACE INTO t (id, col1, col2, updated_at) VALUES (@id, @c1, @c2, @ut)";
var pId = cmd.CreateParameter(); pId.ParameterName = "@id";
// ... 添加參數
foreach (var item in list) {
pId.Value = item.Id; // 設置參數值
cmd.ExecuteNonQuery();
}
}
HMAC-SHA256(AppKey, AppId + "UZ" + timestamp),時間戳需與服務器同步(誤差 < 10min)。Journal Mode=WAL 提升併發性能。作者已用控制台程序跑通全流程,建議後續封裝為 Windows Service / Linux Systemd 定時任務,加入日誌監控與告警。