当REST API不遵循HATEOAS样式时,通常会将您的REST称为真正的REST。
我们怎么能想到客户的每一个可能的请求都可以映射到CRUD操作?
例如,如果客户端(移动)想要为给定的电子邮件ID向用户发送重置密码链接,那么如何将其视为CRUD?
答案 0 :(得分:4)
很少有REST支持者认为REST应该适用于所有内容。我是REST的主要支持者,但是在不同的情况下,不使用HATEOAS是最务实的举措。你的例子就是其中之一。
但是,如果你想以RESTful方式完成这项工作,那么它仍然是可能的。
例如,丢失密码重置链接可能需要一次性身份验证令牌。此标记可能由集合中的资源表示,例如:
/users/xyz/auth-tokens
也许您可以通过创建新的'身份验证令来启动丢失密码的电子邮件操作。使用POST
的该集合中的资源。
答案 1 :(得分:-1)
创建PasswordReset资源非常简单。
POST /password-resets
RPC思想的人很难切换到REST,因为他们习惯于做RPC。 :)
https://www.smashingmagazine.com/2016/09/understanding-rest-and-rpc-for-http-apis/