Sim*_*ple 5 rest json web-services http
我有一个Price
包含唯一的Item Id
, Mrp
, Discount
,的对象Seller Price
。
有一个公开的 Http Api,给定项目 Id 列表后会返回其数据。现在有两种方法可以做到这一点。例如:如果有人在 上执行 GET A,B,C
,则响应:
方法 1:返回价格对象列表:
[
{ "ItemId" : "A",
"Mrp" : 55.0,
"Discount" : 0.0,
"Seller Price" : 55.0
},
{ "ItemId" : "B",
"Mrp" : 100.0,
"Discount" : 10.0,
"Seller Price" : 90.0
},
{ "ItemId" : "C",
"Mrp" : 75.0,
"Discount" : 0.0,
"Seller Price" : 75.0
}
]
Run Code Online (Sandbox Code Playgroud)
方法 2:返回价格对象的映射:
{
"A" :{ "ItemId" : "A",
"Mrp" : 55.0,
"Discount" : 0.0,
"Seller Price" : 55.0
},
"B" :{ "ItemId" : "B",
"Mrp" : 100.0,
"Discount" : 10.0,
"Seller Price" : 90.0
},
"C" :{ "ItemId" : "C",
"Mrp" : 75.0,
"Discount" : 0.0,
"Seller Price" : 75.0
}
}
Run Code Online (Sandbox Code Playgroud)
与方法 1 相比,方法 2 的优点是它为客户端提供了迭代和查找的灵活性,但需要权衡额外的数据通过网络传输。现在我不想从实体内部移出 Item Id,因为没有它实体就失去了意义,而且客户端必须插入 Item Id 来完成对象,然后将其传递给其他一些客户端。
对此的最佳实践是什么。执行此操作的任何其他方法。
由于 Api 正处于设计阶段,所以任何事情都可以容纳。
谢谢
我不会选择第二个选项,除非有一个明确的用例,客户几乎总是希望立即使用地图,并且我的数据已经采用地图的形式。
对于内部 api,只要访问一致,它就会形成合理的约定,而且我认为其他开发人员如果看到它也不会感到惊讶。
将列表变成地图确实不是很难。
除非您在非常不寻常的环境中工作,否则我不会担心通过线路发送额外的数据。
归档时间: |
|
查看次数: |
2624 次 |
最近记录: |