首页 > 解决方案 > 如何指定 HATEOAS 可用的操作(Http 方法)

问题描述

HATEOAS 定义说每个响应都必须包含关联的链接,但是按照 REST 模式,所有操作的 URI 必须相同,改变的是 HTTP 方法。

每个例子:

请求:获取http://example.com/book

回复:

[
  {
    "id": 1,
    "title:" "foo",
    "links": {
      "self": http://example.com/book/1
    }
  }
]

响应通知可用于读取图书数据的链接是“ http://example.com/book/1 ”,但只有这个链接我不知道发出此请求的用户是否有权执行 DELETE或 PUT 用于此资源。

HATEOAS 或其他规范定义了一些模式来告知每种资源可以使用哪些方法?

每个例子:

请求:获取http://example.com/book

回复:

[
  {
    "id": 1,
    "title:" "foo",
    "links": {
      "self": {
        "url": "http://example.com/book/1",
        "methods": [
          "GET",
          "PUT",
          "DELETE"
        ]
    }
  }
]

标签: restauthorizationrestful-architecturerestful-urlhateoas

解决方案


您应该寻找 Siren ( http://hyperschema.org/mediatypes/siren ),它会告诉您的客户他们可以对链接使用哪些方法。


推荐阅读