当POST对象可能与同一资源的GET对象不同时,使用实用hateoas的当前最佳做法是什么?例如,以下是不好的API设计吗?
对于资源/families
,客户可以发布新系列,并在同一请求中包含多个"members":[]
。
/members
也是一种资源
如果POST或GET成功,服务器将返回一个包含不同“系列”对象的对象,以包含链接:
{
"id": 123,
"name": "The Adams Family",
"_links": {
"members": { "href": "/families/123/members" }
}
答案 0 :(得分:0)
我认为在这种情况下使用嵌套资源会更好,例如在HAL + JSON:
{
"id": 123,
"name": "The Adams Family",
"_embedded": {
"members": {
"_links": {
"self": {
"href": "/families/123/members"
}
}
}
}
}
我认为您的解决方案也没问题,但您必须在文档中定义成员链接关系,因此客户(及其开发人员)将知道“成员”意味着家庭成员,而不是任何成员集合(例如,hydra定义集合项的成员属性,schema.org定义组织成员的成员属性)。