我正在构建一个API,它将由不同角色/类型的不同登录(而不是登录)用户使用(例如读者,编辑者,管理员等). 是/ users / {user_id} / path / to / data是一种正确的RESTful方式来定义用户有权访问的内容
是/ users / {user_id} / path / to / data是一种正确的RESTful方式来定义用户有权访问的内容吗?或者只是/ {user_id} / path / to / data?或者它应该是/ path / to / data?user_id = {user_id}或/ path / to / data?user_token = {user_token}的正文/查询参数?或者标题是该信息的正确位置?
应该如何向API服务器提供符合REST的方式?
注意:它不是关于用户资源的子资源,例如地址(如果我们将其定义为用户的子资源).由于这种情况是明确的/ users / {user_id} / addresses / {address_id}.问题一般是关于用户可以访问的整个数据.
我认为用户ID在URL中没有位于非用户相关的东西 – 你描述的内容最好用/ path / to / data /表示 – 而user_token或类似的东西应该在标题中携带(例如在auth标头中的 JSON Web Token),不在URL中而不在查询参数中.如果用户无权访问指定的资源,则系统应响应授权错误HTTP响应.
您描述的结构仅在资源是用户的子资源时才适用,并且正如您所指出的那样,您所询问的资源不是这种情况.