在工作中的讨论变得非常分裂。
我从/books
{
"offset": 0,
"limit": 10,
"total": 3,
"results": [
{
"id" : 1,
"title" : "Book 1"
},
{
"id" : 2,
"title" : "Book 2"
},
{
"id" : 3,
"title" : "Book 3"
}
]
}
这是分页。
现在,如果我向books/<id>
请求特定资源,那么它是否也应该包含在分页结果块中?
有些人认为应该对所有内容进行分页,但有些人认为对一个独特项目的请求应该对此做出响应。所以......
{
"id" : 1,
"title" : "Book 1"
}
这对我来说最有意义,因为你没有请求你正在请求该特定项目的集合,为什么需要对单个资源进行分页?
我可以理解这是为了客户的一致性,但我只是想要其他意见,因为我明白没有正确的实现这一点。
提前致谢,
期待每个人的观点:)
答案 0 :(得分:4)
我们一直都在那里:),由于标准,事情当然更加一致和清洁。我亲自应用jsonapi.org v1.0标准,这对我帮助我提供了很多“标准化”的宁静服务。
回答你的问题,我认为,如果你要求一个实体,那么......用分页包装它是一项额外的工作,你不会使用它。我看到它的方式是,你要求restfull服务器只返回一个实体,所以为什么要返回页面,你不需要它们,你要求一个实体,你知道它!你应该处理它。编程逻辑,只返回/使用你需要的东西,除非你有例外。 (还有另一个问题,重新考虑你的应用程序架构)。
希望这会有所帮助:)
答案 1 :(得分:0)
我的回答是第二位的。不要返回单个实体的分页。结构本身意味着与结果本身一样多的意义。值得注意的是,列表本身只返回一个结果 - 因此分页与请求单个结果并获得完全一个结果。
过去我曾经看过太多次因为这些“优化”而难以辨别的地方出现了错误。坚持使用强大的API定义,并且不会浪费时间调试,这将带来好处。