gpt4 book ai didi

JSON 响应模型设计问题

转载 作者:行者123 更新时间:2023-12-04 18:42:39 24 4
gpt4 key购买 nike

我需要设计 API 的 JSON 响应模型方面的帮助。

假设一个 getUsers调用返回以下响应模型:

{
"users":
[
{
"userId": "1",
"name": "Joe Soap",
"companyId": "3"
},
{
"userId": "2",
"name": "Bob Jones",
"companyId": "3"
},
{
"userId": "3",
"name": "Mary Jane",
"companyId": "4"
},
]
}

现在我们有另一个电话,比方说 getUsersWithCompany .这包括公司信息。我的问题是:

我应该包括这个额外的 company数据进入每个user或者应该是全新的companies在响应模型中列出?

方案一:结合用户和公司
{
"usersWithCompany":
[
{
"userId": "1",
"name": "Joe Soap",
"company":
{
"companyId": "3",
"companyName": "Some Company Ltd",
"contactNumber": "123123123"
},
},
{
"userId": "2",
"name": "Mary Jane",
"company":
{
"companyId": "4",
"companyName": "Another Company Ltd",
"contactNumber": "463463383"
},
}
]
}

优势:当模型被使用时,这可能会更容易,因为在遍历用户列表时公司数据可用。

解决方案 2:用户和公司的单独列表
{
"users":
[
{
"userId": "1",
"name": "Joe Soap",
"companyId": "3"
},
{
"userId": "2",
"name": "Bob Jones",
"companyId": "3"
},
{
"userId": "3",
"name": "Mary Jane",
"companyId": "4"
},
],
"companies":
[
{
"companyId": "3",
"companyName": "Some Company Ltd",
"contactNumber": "123123123"
},
{
"companyId": "4",
"companyName": "Another Company Ltd",
"contactNumber": "463463383"
},
],
}

优势:这可确保用户和公司项目在通话中始终保持一致。消费者的品种较少。

我们正在使用 .NET Web Api 2。

最佳答案

我将从合并的公司和用户对象的单个列表开始(向双重列表 promise YAGNI“你不会需要它”)。这是我见过的最广泛使用的解决方案 - 它允许您稍后轻松添加更多与用户相关的信息。

稍后,如果发现有效负载大小成为一个问题(可能是因为您在一个响应中拥有太多用户),您可以添加一个新方法/服务来返回结果的优化版本。但请记住,压缩输出可以让您走得很远。有效载荷大小 - 免费!

但是“优化版本”可能是不同的东西:您建议了一个解决方案(两个列表),但也许您后来发现更好的优化是只返回某种“增量”或“增量”结果wrt。之前的回复。

这一切都取决于您的用例 - 而过早的优化会让您付出努力,而这可能永远不需要。

关于JSON 响应模型设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22191891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com