首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HATEOAS链接最佳实践

HATEOAS链接最佳实践
EN

Stack Overflow用户
提问于 2021-09-10 08:40:58
回答 1查看 199关注 0票数 0

我正在使用REST,该api遵循一个标准,该标准定义响应应该包括self、page、next和最后一个页面链接。

代码语言:javascript
复制
{
  "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"
    }
  },

在一个或多个链接是冗余的情况下,处理以下情况的最佳实践是什么

  • 只有一页(应该只有一个自我和最后的链接吗?)
  • 你在最后一页(应该有下一个链接吗?)

在这种情况下,是否应该删除红链接?还是应该将它们设置为当前页面?

例如,如果只有一页,我应该更喜欢

代码语言:javascript
复制
{
  "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"
    }
  },

代码语言:javascript
复制
{
  "links" : {
    "self" : {
      "href" : "https://myhost/api/1"
    },
    "last" : {
      "href" : "https://myhost/api/1"
    }
  },
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-10 13:39:44

有多个针对同一资源的链接关系是完全合理的。

为了保持一致的模式,将与垃圾数据的链接关系包括进来是不太合理的。

代码语言:javascript
复制
200 OK
Content-Type: application/json
Content-Location: /1

{
  "links" : {
    "self" : {
      "href" : "/1"
    },
    "first" : {
      "href" : "/1"
    },      
    "next" : {
      "href" : "/2"
    },
    "last" : {
      "href" : "/2"
    }
  }
}

在这里,完全合理的是,selffirst以不同的语义链接关系,具有相同的目标。同样,nextlast有着相同的目标,这是完全合理的,当我们恰好是一行的末尾一页的时候。

但是上一版本链接关系的语义对于已经处于行首的页面来说是没有意义的。

类似地,

代码语言:javascript
复制
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"
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69129570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档