我有一个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或有效负载中提供。