Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js RESTAPI使用名词而不是动词命名URI的正确方法是什么?_Node.js_Rest_Api - Fatal编程技术网

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不应该在端点名称中使用动词。例如,参见或。