在对 REST 风格的服务进行建模时,您会考虑资源。资源是一个user
. 您要公开的服务(不好,因为在服务中考虑强制 RPC 样式)是身份验证并获取稍后可用于授权 HTTP 标头的安全令牌、忘记密码和更改密码功能。
首先,我们对在基本 URL 下始终可访问的资源用户进行建模
https://server/user/{username}
要进行身份验证,我们需要一些安全令牌,以便我们可以向创建安全令牌的用户子资源发出 POST:
POST https://server/user/{username}/securityToken
这会发出一个新的安全令牌,我们可以在 HTTP 授权标头中使用它。我在POST
这里发出请求,因为我们将 securityToken 建模为 user 的某种子资源user/someusername/securityToken
。您可以使用在安全令牌下创建的子资源向用户公开功能以查看所有成功或失败的登录请求。
接下来我们要请求忘记密码。这里重要的是request
。这意味着我们发出请求并创建用户的新密码忘记请求子资源。为了创建子资源,REST 风格使用POST
:
POST https://server/user/{username}/password/request
这可以(但不是必须的)为每个密码请求创建一个子资源,该子资源只有在经过身份验证时才能访问。因此,您可以公开一个 REST 样式的 URL,用户可以在其中获取随时间发出的所有密码请求。
现在更改密码的最后一个功能非常简单,因为我们拥有用户的密码子资源,我们可以POST
对密码资源发出请求:
POST https://server/user/{username}/password