[英]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.