在客户端和服务器之间进行数据同步操作的最佳实践是什么?
我们有2个(或更多)资源:
cars
->年,型号,引擎toys
->颜色,品牌,重量我们需要从服务器获取更新的资源,以防对其进行任何更新。例如:某人从另一个客户端对相同数据进行了更改,我们需要将这些更新转移到我们的客户端应用程序中。
请求:
http://api.example.com/sync?data=cars,toys
(动词?)
http://api.example.com/synchronizations?data=cars,toys
(虚拟资源“同步”)
回应混合数据:
状态码:200
{
message: "ok",
data: {
cars: [
{
year: 2015,
model: "Fiat 500"
engine: 0.9
},
{
year: 2004,
model: "Nissan Sunny"
engine: 1.3
}
],
toys: [
{
color: "yellow",
brand: "Bruder"
weight: 2
}
],
}
}
,如果没有可用更新,则返回状态码204。在我看来,分开的http调用不是一个好的解决方案。如果我们有100个资源(= 100个http调用)怎么办?
答案 0 :(得分:0)
我不是专家,但是我过去使用的一种方法是索要数据的“签名”,而不是始终获取和获取数据。签名可以是您要查找的数据的哈希。因此,流程将类似于:
http://api.example.com/sync/signature/cars
哪个返回签名哈希值
检查签名是否与上次检索数据不同
如果签名不同,请去获取数据
http://api.example.com/sync/cars
{
message: "ok",
data: {
cars: [
{
year: 2015,
model: "Fiat 500"
engine: 0.9
},
{
year: 2004,
model: "Nissan Sunny"
engine: 1.3
},
],
signature: "570a90bfbf8c7eab5dc5d4e26832d5b1"
}
}