繁体   English   中英

该API结构HATEOAS是否兼容?

[英]Is this API structure HATEOAS compatible?

我想知道以下API链接结构是否兼容HATEOAS?

特别是我不确定/ create端点 应该是在入门级别,因为用户可以从那里创建一个组,还是可以将其放入/ groups中?

您对其余的想法如何? 它也应该与HAL兼容。

/groups
  /create
  /detail/{groupId}
    /update
    /delete
    /items
  /search{?page,size,sort}

HATEOAS(请参阅Richardson的成熟度模型3级 )完全是关于链接的,因此在HAL Browser中,它看起来像这样:

根:

{
  "_links": {
    "self": {
      "href": "/api/root"
    },
    "api:group-add": {
      "href": "http://apiname:port/api/group"
    },
    "api:group-search": {
      "href": "http://apiname:port/api/group?pageNumber={pageNumber}&pageSize={pageSize}&sort={sort}"
    },
    "api:group-by-id": {
      "href": "http://apiname:port/api/group/id" (OR "href": "http://apiname:port/api/group?id={id}")
    }
  }
}

添加将只是对该端点的POST,然后您将具有2个GET方法。

然后,当您深入到特定组时(例如#1):

{
  "Id" : 1,
  "Name" : "test",
  "_links": {
    "self": {
      "href": "/api/group/1" (OR "/api/group?id=1")
    },
    "edit": {
      "href": "http://apiname:port/api/group/1"
    },
    "api:delete": {
      "href": "http://apiname:port/api/group/1"
    },
    "api:items-query": {
      "href": "http://apiname:port/api/bonus?groupId=1"
    }
  }
}

在这里,编辑只是一个PUT,然后您需要一个DELETE(在同一链接中查看REST的2级),因为对于这些项,您可能最清楚它们是一个属性还是另一个端点。 您甚至可以将它们嵌入以便在检索组的同一调用中返回。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM