举例来说,假设我有一个API,用于处理将图书的详细信息传递回移动应用程序的情况。用户可以浏览书籍列表,并将书籍添加到他们的愿望清单。
我的问题是,在退回一本书或一本书集时,将特定于用户的信息包含在每本书资源中是一种好习惯吗?我的意思是,每本书都可以包含一个字段,该字段表示该书是否在用户的愿望清单中,或者将此清单单独返回并由移动应用程序来执行此检查。
移动应用程序开发人员希望拨打/ books并收到类似以下内容的响应;
{
"books": [
{
"id":1,
"name": "How to be good at everything",
"price": 3.99,
"in_wish_list": true
},
{
"id":2,
"name": "How to be good at nothing",
"price": 6.50,
"in_wish_list": false
}
]
}
Run Code Online (Sandbox Code Playgroud)
我认为我希望将这些数据分散到多个端点。
/ user / 29 /收藏
{
"wishlist": [1,7,9,34,28]
}
Run Code Online (Sandbox Code Playgroud)
/图书
{
"books": [
{
"id":1,
"name": "How to be good at everything",
"price": 3.99
},
{
"id":2,
"name": "How to be good at nothing",
"price": 6.50
}
]
}
Run Code Online (Sandbox Code Playgroud)
这样,移动应用程序负责确定书籍是否在用户的愿望清单中。
我可以看到将用户数据嵌入到书本资源中的好处,但是感觉不对。
我想知道其他人如何处理这种情况吗?
现在,这完全取决于谁将使用您的 API 以及如何使用。如果需要显示用户心愿单上的书籍,则必须有一个单独的端点。当然,移动客户端开发人员会更喜欢一个大的调用而不是多个较小的调用,但您也可以妥协并拥有一个单独的用户愿望清单端点(同样,如果有这样的用例场景),并为每本书返回一个布尔值 - 这样,对您的 API 的调用次数甚至可能会减少。
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |