我正在使用REST,该api遵循一个标准,该标准定义响应应该包括self、page、next和最后一个页面链接。
{
"links" : {
"self" : {
"href" : "https://myhost/api/2"
},
"prev" : {
"href" : "https://myhost/api/1"
},
"next" : {
"href" : "https://myhost/api/3"
},
"last" : {
"href" : "https://myhost/api/4"
}
},在一个或多个链接是冗余的情况下,处理以下情况的最佳实践是什么
在这种情况下,是否应该删除红链接?还是应该将它们设置为当前页面?
例如,如果只有一页,我应该更喜欢
{
"links" : {
"self" : {
"href" : "https://myhost/api/1"
},
"prev" : {
"href" : "https://myhost/api/1"
},
"next" : {
"href" : "https://myhost/api/1"
},
"last" : {
"href" : "https://myhost/api/1"
}
},或
{
"links" : {
"self" : {
"href" : "https://myhost/api/1"
},
"last" : {
"href" : "https://myhost/api/1"
}
},发布于 2021-09-10 13:39:44
有多个针对同一资源的链接关系是完全合理的。
为了保持一致的模式,将与垃圾数据的链接关系包括进来是不太合理的。
200 OK
Content-Type: application/json
Content-Location: /1
{
"links" : {
"self" : {
"href" : "/1"
},
"first" : {
"href" : "/1"
},
"next" : {
"href" : "/2"
},
"last" : {
"href" : "/2"
}
}
}在这里,完全合理的是,self和first以不同的语义链接关系,具有相同的目标。同样,next和last有着相同的目标,这是完全合理的,当我们恰好是一行的末尾一页的时候。
但是上一版本链接关系的语义对于已经处于行首的页面来说是没有意义的。
类似地,
200 OK
Content-Location: /this-collection-has-only-one-item
Content-Type: application/json
{
"links" : {
"self" : {
"href" : "/this-collection-has-only-one-item"
},
"first" : {
"href" : "/this-collection-has-only-one-item"
},
"last" : {
"href" : "/this-collection-has-only-one-item"
}
}
}https://stackoverflow.com/questions/69129570
复制相似问题