用于登录/注册表单的REST资源

时间:2019-05-26 20:19:57

标签: rest

我想创建REST登录/注册URI,以进行现有用户登录或新用户注册。经过一番搜索,我发现大多数此类表单都是使用以下规则设计的:

GET /login获取登录资源

POST /login登录并获取用户个人资料资源

GET /register获取注册资源

POST /register注册并获取新的用户个人资料资源

但是,我认为这不是100%REST的方法,因为REST的规则之一是资源应该是名词而不是动词(除了某些特殊情况,例如搜索api)。对于这种情况最好的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

对此没有一个正确的答案,因此,我将尝试提出一些常见的解决方案的想法。

登录

登录(又名身份验证)本身通常以非RESTful方式(例如OAuth2)处理。如果HTTP是无状态的,是否真的应该有一个“登录”?每个请求都应携带所有信息,以允许服务器对客户端进行身份验证。如果您确实想将登录作为RESTful端点处理,您可以问自己:“我正在更改什么状态?一种解决方法是,您可能在创建一组凭据”。我现在假设您正在寻找一种最佳实践/通用方法,而不是一种非常纯粹的REST方法。

当前用户信息

获取当前用户通常通过诸如/current-user/whoami之类的端点来处理。对此发出GET请求可能会产生有关用户的信息,也可能会立即重定向到规范的用户端点,例如/users/1234。执行PUT请求可以再次更新用户,或将重定向返回到实际的用户端点。

注册

如果您在/users之类的资源上拥有用户列表。通过对此集合执行POST请求来创建新的用户资源是很有意义的。