在我设计的REST API中,我有这样的资源URI:
/user/:userId/data/:key
表示ID为userId
且数据密钥为key
的用户的用户数据。
除非我需要为所有用户提供一些密钥的数据,否则它的效果很好。
我想到的两种可能的解决方案是使用特殊字符串(例如 all userId
)指定/user/all/data/:key
参数,或将userId
作为查询字符串。在这种情况下使用的最佳做法是什么?
答案 0 :(得分:0)
使用:/user/all/data/:key/
绝对不是要走的路。它迫使API客户端了解一些实现细节 - 名为 all 的专用用户就是这样一个细节。
更好的想法是使用/users/data/?key=<some key>
。这样,您明确声明users
的集合有一些data
,您需要使用给定的data
过滤这些key
。