在过去的几天里,我一直在研究REST框架的世界(特定的Django休息框架)。 RESTful API的概念看起来非常简单,但有一件事我一直在想。
假设我有以下数据结构:
Group
ID
GroupName
User
ID
UserName
GroupUser
userId
groupId
使用依赖资源时,我一直想知道如何返回并创建这些对象。
在上述情况下,我可以想到两种创建用户并将用户添加到一个或多个组的方法:
选项1: 我将带有UserName的POST请求发送到服务器。 随后是一个或多个POST请求,将用户添加到一个或多个组。在单独的POST请求中添加非现有组。
或者,选项2: 我创建了用户并在请求中添加了所有组,并让我的序列化器处理尚未创建的任何组。
第二个选项听起来更有效但请求可能开始看起来很奇怪,因为一些组将由ID(已知组)和一些名称(不存在的组)定义。这个解决方案的主要内容是串行器与模型有很大不同。
我的问题基本归结为以下几点: 在RESTful API中,您应该如何处理依赖资源?
答案 0 :(得分:0)
如果你尝试命名,那就很明显了。
选项一可能是:
// creating the user
POST /user
// adding users to the group
POST /usergroup
POST /usergroup
// adding a new group
POST /group
POST /usergroup
选项二更像是:
POST /CreateUserAndGroupMappingCreatingMissingGroups
选项二是RPC模型,而不是一个宁静的模型。
REST是关于名词的:如果你不能说出你要发布的东西,或者那个东西看起来像动词,那么你还没有建立一个非常宁静的服务。
RPC服务没有任何问题;只要知道你在创造什么。