RESTful创建节点树的正确URI方案是什么?

时间:2015-05-06 07:18:45

标签: rest tree

我有一个ProductInstance,其父项为零或更多,也是ProductInstances。他们是一棵树。例如:

- ProductInstance VM
  - ProductInstance RAID
    - ProductInstance DISK
  - ProductInstance CPU

我想要我的URI方案来创建这些,干净和RESTful。我该如何设置?

我提出的一个方案是嵌套URI资源:

  • GET http://example.com/product_instances/new - HTML表单
  • POST http://example.com/product_instances - 创建新资源
  • GET http://example.com/product_instances/1/children/new - HTML表单
  • POST http://example.com/product_instances/1/children - 创建父资源为product_instance 1的新资源。

我想到的另一个方案是提供参数并重新使用“普通的新的和创造”:

  • GET http://example.com/product_instances/new - HTML表单
  • POST http://example.com/product_instances - 创建新资源
  • GET http://example.com/product_instances/new?parent=1 - HTML表单
  • POST http://example.com/product_instances/ - 在有效负载中包含parent = 1。

这种模式有没有标准?是否有一些规则或指南解释了如何处理RESTful URI方案中的树状项目?

注意:我专注于新的和仅创建,因为我会说show, update/edit and delete对于有父母和没有父母的项目没有区别,因为它们对已经存储的ProductInstance起作用,因此parent是已知的,不需要在URI或有效负载中提供。

0 个答案:

没有答案