rest - 什么是符合 REST 的方法来处理基于用户的资源访问?

标签 rest uri restful-url restful-architecture

我正在构建一个 API,它将被不同角色/类型(例如 readereditor)的不同登录(和未登录)用户使用>、admin 等)。

/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 规范的方式?


注意:这与user 资源的子资源无关,例如addresses(如果我们将其定义为 user 的子资源)。由于这种情况很明显 /users/{user_id}/addresses/{address_id}。问题通常是关于用户可能访问的全部数据。

最佳答案

我认为用户 ID 在与用户无关的 URL 中没有位置 - 你所描述的最好简单地表示为/path/to/data/- 并且 user_token 或类似的应该在 header (例如 auth header 中的 JSON Web Token),不在 URL 中,也不在查询参数中。

如果用户无权访问指定资源,则系统应响应授权错误 HTTP 响应。

只有当资源是用户的子资源时,您描述的结构才适用,正如您所指出的,对于您询问的资源而言情况并非如此。

关于rest - 什么是符合 REST 的方法来处理基于用户的资源访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30847561/

相关文章:

python - 处理 Twisted Web 服务器中的所有资源

python - Pyramid View 配置中的 RESTful 设计

seo - 如何在 RESTful URL 中使用 slug?

java - 直接从服务器下载 blob

rest - API端点是否基于RESTful和良好URI设计的用户凭证来区分要返回的资源?

java - Spring Rest Controller - 启动顺序

api - Jasper报告服务器: Reports not shown via REST

php - 将我的 RESTful API 仅限于我的应用程序

email - 如何解决垃圾邮件中的/@网址?

android - 从内容 URI 获取搜索图像的绝对文件路径