RESTful API中的依赖资源

时间:2014-07-17 03:31:24

标签: django rest architecture django-rest-framework

在过去的几天里,我一直在研究REST框架的世界(特定的Django休息框架)。 RESTful API的概念看起来非常简单,但有一件事我一直在想。

假设我有以下数据结构:

Group
ID
GroupName

User
ID
UserName

GroupUser
userId
groupId

使用依赖资源时,我一直想知道如何返回并创建这些对象。

在上述情况下,我可以想到两种创建用户并将用户添加到一个或多个组的方法:

选项1: 我将带有UserName的POST请求发送到服务器。 随后是一个或多个POST请求,将用户添加到一个或多个组。在单独的POST请求中添加非现有组。

或者,选项2: 我创建了用户并在请求中添加了所有组,并让我的序列化器处理尚未创建的任何组。

第二个选项听起来更有效但请求可能开始看起来很奇怪,因为一些组将由ID(已知组)和一些名称(不存在的组)定义。这个解决方案的主要内容是串行器与模型有很大不同。

我的问题基本归结为以下几点: 在RESTful API中,您应该如何处理依赖资源?

1 个答案:

答案 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服务没有任何问题;只要知道你在创造什么。