假设我的 RESTful API 处理文件和文件夹。有了它,我可以创建和编辑文件和文件夹。
一个文件可以属于一个文件夹。因此,假设我想将文件移动到不同的文件夹。根据规范和/或最常见的情况,哪个最合适?
- POST 到 /file/:id,发送新文件夹的 id,只更改 folder_id 的值,保持所有其他属性不变。API 方法仅更新 folder_id。
- POST 到 /file/:id/location,发送新文件夹的 id。
这并不是一个直接的答案,但我想我会问自己的问题是:移动文件操作是否更适合文件资源或文件夹资源来处理。在我得到问题的答案之前,我不会太担心 URI 结构。
移动动作触及三个资源;文件、原始文件夹和目标文件夹。客户端至少需要知道文件 URI 和目标文件夹 URI,因为可以推断出原始文件夹。我可以看到这两种方法都有一个案例。文件资源表示(POST 的内容)可以将新的目标文件夹指示为一个值,如果不需要移动,则假定为空。文件夹资源可以假设 POST 中包含的文件表示意味着将该文件移动到文件夹。无论哪种方法对您的业务流程最有意义,我都会采用。