首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rest多个parentId id

Rest多个parentId id
EN

Stack Overflow用户
提问于 2013-04-30 03:08:07
回答 3查看 86关注 0票数 1

我有一个带有uri的rest资源:

代码语言:javascript
复制
/invoices/1/invoiceitems/34

现在,我必须添加一个名为invoice的发票项的子项

应该这样做:

代码语言:javascript
复制
/invoices/1/invoiceitems/34/invoiceitempieces/7

这看起来比这些选项更有条理

代码语言:javascript
复制
/invoiceitems/34/invoiceitempieces/7
/invoiceitempieces/7

我更喜欢使用所有三个I的示例,但这是最佳/可接受的实践吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-30 03:40:01

虽然这看起来是最合适的,但从概念上讲...

代码语言:javascript
复制
/invoices/1/invoiceitems/34/invoiceitempieces/7

..。你会发现它很难实现(根据我自己的经验)。你会发现这个..。

代码语言:javascript
复制
/invoices
/invoices/1
/invoices/1/invoiceitems
/invoiceitems/34
/invoiceitems/34/invoiceitempieces
/invoiceitempieces/7

..。同样有用,也更容易实现,尽管它可能不那么优雅。

票数 1
EN

Stack Overflow用户

发布于 2013-04-30 03:14:16

最佳实践是使用HATEOAS。RESTful URI不透明。

REST API不能定义固定的资源名称或hierarchies (客户端和服务器的明显耦合)。服务器必须能够自由地控制自己的命名空间。相反,允许服务器指示客户端如何构造适当的URI,例如在HTML表单和URI模板中,通过在媒体类型和链接关系中定义这些指令。这里的失败意味着客户端由于带外信息而采用资源结构,例如特定于域的标准,这是RPC的功能耦合的面向数据的等价物。

看看这个:http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

票数 1
EN

Stack Overflow用户

发布于 2013-04-30 13:50:37

我认为你必须有发票项和发票项的Id和order,id是唯一的,"order+invoice_id“组合是唯一的,所以你可以通过两种方式访问发票项。

代码语言:javascript
复制
/invoices/{invoice_id}/invoiceitems/{invoiceitems_order}/invoiceitempieces/{invoiceitempieces_order}
/invoiceitems/{invoiceitems_id}/invoiceitempieces/{invoiceitempieces_order}
/invoiceitempieces/{invoiceitempieces_id}

因此,如果客户端需要,您可以灵活地在URI "the order“中提供更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16286326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档