0

这是我发现自己在处理嵌套资源时经常面临的两难境地。

所以假设目标用户有 n 张照片。GET /users/{id}/photos定义路由是否有意义,或者我应该GET /photos/{id}通过首先请求用户对象然后循环遍历该用户的photo_ids属性来发送 n 个请求?

4

1 回答 1

1

从最佳实践的角度来看,我不会针对此类类似资源发送多个请求。在这种情况下,您最终会通过对后端进行速率限制来为自己创造更多的工作,以防止您的用户使用大量图片来炸毁您的服务器。这也会对您的用户体验产生影响。

我建议你这样格式化你的路线:

获取 /users/photos?id={{id}}

并一次性返回所有与该用户 ID 相关的照片。您也可以随时将其限制为每次通话的 X 张照片,并分页:

GET /users/photos?id=658&page={{1,2,3, etc.}}

我个人的偏好总是尝试在 URL 参数中保留可变数据。用了一下午的时间研究了几个不相关的 API,我可以告诉你很多开发人员都同意。

于 2021-09-11T07:52:54.807 回答