ReSTful设计:返回一个空对象作为模板来创建新表单

jim*_*jim 3 rest restful-url

我的问题是直截了当的 - 我想.

目前存在以下Uris:

http://someserver/service/item           GET   returns all items  
http://someserver/service/item           POST  creates a new item  
http://someserver/service/item/{id}      GET   returns item with id {id}  
http://someserver/service/item/{id}      PUT   updates item with {id}  
Run Code Online (Sandbox Code Playgroud)

我想要做的是返回一个空白的"项目",就像一个模板,用于创建新项目,其中包含对象参数列表,其类型,是否需要.这样做的原因是我想构建一个通用的jquery'create new'插件,它完全不知道数据结构,我可以将它应用于我的所有新对象.

实现这个的最佳方法是什么?

我希望这是有道理的,谢谢你的时间.

Yur*_*rev 9

我理解达雷尔提供的答案,但我会恭敬地反对它.

在我看来,这个模板对象(资源)是你的应用程序的一个重要部分,因为你想使它通用.这是一流的公民资源,我们谈论的是REST,因此应给予相应的处理.我应该能够获取模板资源,它不应该在POST后面"隐藏".

GET http://someserver/service/item/template
Run Code Online (Sandbox Code Playgroud)

然后,当您通过GET访问资源时,您还可以更轻松地引入版本控制和可变性.

  • :-)我小心避免向端点提供样本URI,因为端点看起来并不那么相关.它是列表文档中的rel ="create | new | template | whatever",它允许我发现关键的URI.如果你想命名URI ../template是完全正常的.我使用POST是因为我生成并增加了存储在我的数据库中的id.如果您对ID使用GUID,那么GET可以正常工作. (2认同)

Dar*_*ler 5

我也做几乎同样的事情。我在“项目列表”资源中包含一个链接,您可以发布到该链接。响应是新项目的模板。可以说,您也可以执行 GET 来检索模板,但我利用这个机会为该项目分配一个新的 Id,因此我的请求不是幂等的。