【发布时间】:2019-12-31 08:02:38
【问题描述】:
我构建了一个 RESTful api,我需要从前端获取复杂的数据。但我不确定应该为 POST 数据选择哪一个。
我应该获得路线组所有可能路线的价格。一个例子:有一条总线,它从端口 1 开始,到端口 2,并在端口 3 结束。我应该获取路线的每种乘客类型的价目表:
port-1 to port-2
port-1 to port-3
port-2 to port-3
我在考虑这两个选项。通过查看下面的示例数据,您将了解数据类型。
1-
prices: [
{
departure_port_id: {value},
arrival_port_id: {value},
ticket_type_id: {value},
priceable_type: {value},
priceable_type_id: {value},
price: {value},
companion_price: {value},
},
{
...
}
]
2-
prices: [
{departure_port_id}-{arrival_port_id}: [
{ticket_type_id}: [
{priceable_type}: [
{priceable_type_id}: {
price: {value},
companion_price: {value},
}
]
]
]
]
我不确定哪个更适合前端。
在第一个上,这看起来很清楚,但是有太多重复的数据,开发人员应该操作数据。或许可以设置data-属性为input,提交前应该在js端操作数据。
在第二个中,没有重复数据,全部按键分组,可用于输入的name 属性。喜欢:name="prices[1-2][1][passenger][1][price]"
你怎么看?还是你有更好的主意?
【问题讨论】:
-
你在控制前端吗?
-
@k0pernikus 是的,但我也应该考虑将我的 api 服务分享给其他人。
-
你想用 swagger 之类的东西来记录你的 api 服务吗?
-
@k0pernikus 是的,可能是邮递员或其他服务。我还没有搜索过。
-
我在回答中添加了一个提示,即在某些文档库中表达动态键不支持。
标签: javascript json laravel rest api-design