维基百科说将集合成员作为链接返回,可选地包含每个成员的详细信息。显然,在这种情况下您不能返回整个集合,因为它是无界的。我们使用大型集合构建的 RESTful API 将返回分页的集合。我不知道在您的用例中返回这是否有用,但我看到您正在使用 HAL,所以如果您要使用,链接数据可能看起来像这样:
{
"_links": {
"self": { "href": "/fib?page=2" },
"next": { "href": "/fib?page=3" },
"prev": { "href": "/fib?page=1" },
"fibs": [
{"href": "/fib/4" },
{"href": "/fib/5" },
{"href": "/fib/6" }
},
}
或者这个用于嵌入式:
{
"_links": {
"self": { "href": "/fib?page=2" },
"next": { "href": "/fib?page=3" },
"prev": { "href": "/fib?page=1" },
},
_embedded: {
"fibs": [
{
"_links": {"self": "/fib/4" },
"value": 2
},
{
"_links": {"self": "/fib/5" },
"value": 3
},
{
"_links": {"self": "/fib/6" },
"value": 5
}
}
}
您可以在 HAL 规范中看到与此类似的示例:https ://datatracker.ietf.org/doc/html/draft-kelly-json-hal-00#section-6
如果用户没有指定page
查询字符串参数,我们返回第一页。
如果返回集合(分页或全部)没有意义,那么我建议返回 405 Method Not Allowed HTTP 响应代码。如果您也无法将项目(POST)插入到集合中,那么也可能为此返回相同的 405 响应。