Rest API用于POST和GET / PUT的不同模型

时间:2015-08-29 10:08:01

标签: rest architecture

我正在设计一个REST API。如您所知,RESTful API没有真正的规范。 在我的情况下,我有一个简单的API,我有用户。 我可以得到用户,更新它们。像这样:

  

GET ... / users / 12

然而,对于创建用户,我希望仅允许属性的子集。 例如。 获得用户后,您将获得许多属性,例如: ID, 名称, 创立日期 等等

当您创建用户时,我只想允许POST名称而不是其他内容。 在理解RESTful服务时,是否允许为同一资源使用不同的http动词的不同模型? 或者你会期待

  

POST ../ users

可以具有与获取现有属性时完全相同的属性吗?

或者你认为我不应该这样做吗? 在阅读了许多宗教讨论之后,只是想知道;)

提前谢谢你 最好 劳林

1 个答案:

答案 0 :(得分:0)

首先:我认为Roy Fieldings论文Architectural Styles and the Design of Network-based Software Architectures对RESTful架构风格有一个很好的定义。

第二:我认为你有一个小的误解REST不是关于模型或控制器它是关于资源。模型和资源之间通常存在一对一的关系,但并不是必需的。

第三:要实现您的要求,您只需要一个user模型。当API用户发布超过您允许的参数时,请忽略它们,并仅使用您要在新创建的模型上设置的参数。或者,如果您不想忽略它们,则返回400 Bad Request HTTP状态。