我对如何处理传递多个资源的请求感到困惑。
我有以下层次结构。项目有可交付成果,可交付成果有文档。所以项目->可交付成果->文档。
对于特定于文档的自定义操作,比如说 change_status,我有诸如 /projects/1/deliverables/1/documents/1/change_status 之类的路由。至此一切都好。
但是,当我想在多个文档上更改状态时,最佳实践是什么?/projects/1/deliverables/1/documents/change_status (传递文档ID数组)似乎不是RESTFul,因为我的理解是在“文档”之后应该存在特定的ID。
/projects/1/deliverables/1/change_status (传递一组文档ID)并不能说服我有两个原因。首先,将调用我的可交付成果控制器(按照 Rails 中的约定),而且您似乎正在更改可交付成果而不是文档的状态。鉴于可以在文档中更改状态,我认为生成的 url 令人困惑,特别是如果您也可以将状态更改为可交付成果(您如何区分将状态更改为可交付成果或文档,在这种情况下 url 将是相同的) .
所以基本上我对如何处理在 RESTFul 中处理多个资源的请求感到困惑。非常感谢任何帮助/澄清!谢谢各位!