我正在创建一个公开类似于组成员身份的API。实际上,我有一个GroupMembership
资源,该资源在/groupmembership
公开。
现在,当我想在用户和群组之间创建新关联时,我会POST
到/groupmembership
。我很好奇的是我应该如何引用User
和Group
资源实例。我是通过URI完成的,还是通过他们的UUID来实现?也就是说,这两个有效载荷中哪一个有效?
POST /groupmembership
{
user: "http://localhost:8080/user/abcd-def-ghij",
group: "http://localhost:8080/group/1a2-b3c-4d5"
}
或
POST /groupmembership
{
user: "abcd-def-ghij",
group: "1a2-b3c-4d5"
}
我正在使用Spring HATEOAS,据我所知,没有办法取消引用实体id的链接,这使得第一种方法有些问题。基本上,给定一个链接,我希望能够找出引用该实体的UUID。但我也不想解析URI,因为它们应该是不透明的。 Spring HATEOAS可以这样做吗?
使用第二种方法,我可以简单地查一下,但我想知道哪种方法更有意义。困扰我的一件事是,第一件事具有应由客户处理的独特风味;即,它是遵循URI的客户端。看起来服务器应该只能处理UUID?但另一方面,服务器完全控制URI的结构,因此它似乎应该知道如何将URI解引用到适当的实体/资源ID。
答案 0 :(得分:1)
您好,您不需要有效载荷。通过位置标题发布创建的Ressource的URL,状态代码为201。
要回答您的问题,请使用URI。 客户端不应该自己编写URI来获取资源。