Dav*_*New 5 rest json web-services json.net asp.net-web-api
我需要帮助设计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"
},
]
}
Run Code Online (Sandbox Code Playgroud)
现在我们有另一个电话,让我们说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"
},
}
]
}
Run Code Online (Sandbox Code Playgroud)
优点:当模型被消耗时,这可能会更容易,因为在遍历用户列表时公司数据可用.
{
"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"
},
],
}
Run Code Online (Sandbox Code Playgroud)
优点:这可确保用户和公司项目在呼叫期间始终保持一致.消费者的品种较少.
我们正在使用.NET Web Api 2.
设计应考虑实体是弱还是强。(弱意味着如果主要实体被删除,它们就不会生存)。因此,对于用户和公司来说,我有一个单独的 RESTFULL 服务,例如
/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"
},
]
Run Code Online (Sandbox Code Playgroud)
您还需要考虑除了用户之外是否还有其他对公司目录的参考。如果是这样的话,我什至会相信这个方法。
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |