我正在编写Rest API。我在queryParam与path变量之间进行选择时遇到麻烦。我的api必须获取用户列表,并且需要参数(团队名称,请求者,分页参数)。仅当请求者有权查看团队成员时,才会返回用户列表
我现在正在使用下面提到的内容。我确定paginationParams应该在执行分页时使用queryParam,而teamName应该在我请求特定资源时使用路径变量。但是我不确定请求者。我应该使用路径还是查询请求者?
/Teams/{teamName}/Users?requestor={requester};paginationParams={paginationParams}
其他可能性是
/Teams/{teamName}/Users/{requester};paginationParams={paginationParams}
答案 0 :(得分:1)
如果requestor
参数有助于识别给定teamName
的用户集合,则应将其包括在路径中。否则,如果用于排序或过滤项目,则最好将其作为查询参数发送。
根据您的描述,听起来requestor
只是users
资源的附加过滤器,根本无法识别它,因此是查询参数。另一种查看方式是问自己
基于
requestor
的用户集合是否有所不同,还是总是相同,并且只是根据访问权限被过滤掉了?
答案 1 :(得分:0)
如果请求者是用户的标识符,则将其用作参数,否则将其用作查询
答案 2 :(得分:0)
您应将其作为查询参数传递,因为/Teams/{teamName}/Users/{requester}
不是资源。资源就是您要的资源,即/Teams/{teamName}/Users
。