Node.js RESTAPI使用名词而不是动词命名URI的正确方法是什么?
我有一个登录名,我需要这样做:Node.js RESTAPI使用名词而不是动词命名URI的正确方法是什么?,node.js,rest,api,Node.js,Rest,Api,我有一个登录名,我需要这样做: 1. POST .../authentication/login 2. POST .../authentication/verifyToken 3. POST .../authentication/forgotPassword 1. POST .../sessions/new 2. GET .../sessions/:token 3. GET .../sessions/forgot 1. Will create a new token, based on
1. POST .../authentication/login
2. POST .../authentication/verifyToken
3. POST .../authentication/forgotPassword
1. POST .../sessions/new
2. GET .../sessions/:token
3. GET .../sessions/forgot
1. Will create a new token, based on phone and password correct credentials.
2. Will verify the token validation or expiration.
3. Will send a SMS within a new password or a new temporary password reset code.
1. POST .../authentication/login
2. POST .../authentication/verifyToken
3. POST .../authentication/forgotPassword
1. POST .../sessions/new
2. GET .../sessions/:token
3. GET .../sessions/forgot
1. Will create a new token, based on phone and password correct credentials.
2. Will verify the token validation or expiration.
3. Will send a SMS within a new password or a new temporary password reset code.
第一种方法不是REST。但这是完全清楚的。
您可以阅读URL并准确了解它将要做什么。你不需要任何解释
然而,越来越多的文章说REST中的动词不是RESTFUL,因此,这不是一个很好的实践
处理这个问题的正确方法是什么?首先,我不使用术语session。这意味着服务器端状态,这在REST要求的无状态通信中是有问题的 因此,您的问题可以通过建模资源来解决,例如:
GET ./authentication/token
如果请求头中提供了有效凭据,则获取令牌
GET ./authentication/password
如果请求头中提供了电子邮件地址,则获取新的临时密码
您还可以使用POST
在请求正文中传输值
请注意,如果结果是通过SMS发送的,则服务应使用HTTP 204回答。首先,我不使用术语session。这意味着服务器端状态,这在REST要求的无状态通信中是有问题的 因此,您的问题可以通过建模资源来解决,例如:
GET ./authentication/token
如果请求头中提供了有效凭据,则获取令牌
GET ./authentication/password
如果请求头中提供了电子邮件地址,则获取新的临时密码
您还可以使用POST
在请求正文中传输值
请注意,如果结果是通过SMS发送的,则服务应使用
HTTP 204
应答。REST不关心您对资源标识符使用的拼写
但正如我所读到的,这种结构并不好,因为它包含动词而不是名词
结构良好
您可以阅读URL并准确了解它将要做什么
对——REST并不关心您是否能够阅读URL并理解它将要做什么
URL/URI是标识符,就像程序中的变量名是标识符一样。编译器并不特别关心变量的名称是accountBalance
、purpleMonkeyDishchiner
还是x
。我们的编码标准中描述的拼写是针对人类读者的,对于人类读者也是如此
然而,越来越多的文章说REST中的动词不是RESTFUL,因此,这不是一个很好的实践
休息是一种乐趣
作为一种基于网络的应用程序的体系结构样式,其定义在论文中以增量的方式给出,它是由九种预先存在的体系结构样式和五种Web特有的附加约束衍生而来的设计约束的累积
Fielding描述了中的约束条件;任何声称标识符中的动词“不是RESTful”的人都应该能够指出它们违反的特定约束
我还没有看到一个令人信服的论点,即标识符拼写违反了任何REST约束。REST不关心您对资源标识符使用的拼写 但正如我所读到的,这种结构并不好,因为它包含动词而不是名词 结构良好 您可以阅读URL并准确了解它将要做什么 对——REST并不关心您是否能够阅读URL并理解它将要做什么 URL/URI是标识符,就像程序中的变量名是标识符一样。编译器并不特别关心变量的名称是
accountBalance
、purpleMonkeyDishchiner
还是x
。我们的编码标准中描述的拼写是针对人类读者的,对于人类读者也是如此
然而,越来越多的文章说REST中的动词不是RESTFUL,因此,这不是一个很好的实践
休息是一种乐趣
作为一种基于网络的应用程序的体系结构样式,其定义在论文中以增量的方式给出,它是由九种预先存在的体系结构样式和五种Web特有的附加约束衍生而来的设计约束的累积
Fielding描述了中的约束条件;任何声称标识符中的动词“不是RESTful”的人都应该能够指出它们违反的特定约束
我还没有看到一个令人信服的论点,即标识符拼写违反了任何REST约束。为什么您认为REST帖子不应该在URL中使用动词?我想知道这个概念是从哪里来的?@jfriend00 REST API不应该在端点名称中使用动词。请参阅示例或。为什么您认为REST帖子不应该在URL中使用动词?我想知道这个概念是从哪里来的?@jfriend00 REST API不应该在端点名称中使用动词。例如,参见或。