当前用户与 ID 的 REST 端点

标签 rest api http restful-architecture

就 REST API 而言,通常遵循哪种结构更好?

假设所有资源的GET/PUT/POST/DELETE

1) 将当前登录的用户用于/users/**/* 路由。

/users
/users/password
/users/email
/users/preferences
/users/documents
/documents/:id

2) 具有带 ID 的绝对路径并使用 /users/:id 作为当前登录用户?

/users
/users/:id/password
/users/:id/email
/users/:id/preferences
/preferences/:id

重要吗?

最佳答案

两者都很好。为每个用户创建唯一端点的好处在于,有一天您可以允许用户 X 访问有关用户 Y 的信息。

我在最近的 API 中遵循的模式是为每个用户创建一个唯一的端点,但是 1 个端点 /current-user 重定向到 /user/:some-id.

一个 url 可能表示一个身份。其他资源可能将用户称为某个事物的“创建者”或“修改者”,这很有意义,在这些地方您可能想要使用 url(而不仅仅是 userId)。

关于当前用户与 ID 的 REST 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50284369/

相关文章:

json - 需要帮助在 SWIFT 中解析 wikipedia json api

http - 如何在 2 个不同的 API 调用之间共享数据?

python - 如何使用 flask_restplus 显示模式示例?

Java REST 使用数据源

rest - Grails 3.1.1 Rest-API和Neo4J 2.3基本示例不起作用

java - 错误 : The given id must not be null for GeneratedValue in JPA

javascript - 如何将变量传递给闭包

api - 在 OAuth 2 中有授权码时为什么需要访问 token ?

c# - 使用 WebRequest 将参数和数据 POST 到 TestFlight

javascript - 使用 GET 将复杂的 JS 对象从 Angular 传递到 C# WebApi