Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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
Javascript 由Sails.js创建的RESTAPI真的是RESTful的并且遵循惯例吗?_Javascript_Node.js_Rest_Sails.js_Watermark - Fatal编程技术网

Javascript 由Sails.js创建的RESTAPI真的是RESTful的并且遵循惯例吗?

Javascript 由Sails.js创建的RESTAPI真的是RESTful的并且遵循惯例吗?,javascript,node.js,rest,sails.js,watermark,Javascript,Node.js,Rest,Sails.js,Watermark,根据我读过的一本书和几篇文章,指定RESTAPI的方法是使用大多数HTTP方法,而不是将GET方法引入到创建中,正如在Sails.js的演示中所示,您只需向 /modelName/create?property=value 嗯,那一点也不安宁。相反,我们应该向/modelName发出PUT请求。或者,我在这里遗漏了什么吗?在RESTAPI中,几乎所有资源都是由用户创建的 向将包含新资源的集合发布: [Request] POST /gizmos { "name": "widget" }

根据我读过的一本书和几篇文章,指定RESTAPI的方法是使用大多数HTTP方法,而不是将GET方法引入到创建中,正如在Sails.js的演示中所示,您只需向

/modelName/create?property=value

嗯,那一点也不安宁。相反,我们应该向
/modelName
发出PUT请求。或者,我在这里遗漏了什么吗?

在RESTAPI中,几乎所有资源都是由用户创建的

  • 向将包含新资源的集合发布

    [Request]
    POST /gizmos
    {
        "name": "widget"
    }
    
    [Response]
    201 Created
    Location: /gizmos/71
    
  • 或将新资源的
    直接放入其位置:

    [Request]
    PUT /gizmos/71
    {
        "name": "widget"
    }
    
    [Response]
    204 No Content
    
  • 通过执行
    GET/gizmos/create
    创建资源是错误的

    • GET
      不应更改服务上的任何内容。做0次、1次或1000次都应该有相同的效果:没有效果
    • URL中不应包含动词。URL应该是一个名词。HTTP方法--
      GET
      POST
      PUT
      DELETE
      --是动词

    • 是的,你是。您从演示中学到的是一个快捷方式或帮助程序,可以从根本不是restful的浏览器url栏访问rest操作。它用于测试目的(默认情况下启用),不应在生产中使用


      使用http动词向控制器发出请求,例如,
      DELETE
      请求
      /user/1
      将删除id为1的用户。这很舒服。

      你说得很对。get请求应该是一个安全(nullipotent)方法,无论调用的频率有多高,它都应该或多或少返回相同的数据结构,但更重要的是,不应自行修改数据结构。Github问题可能是发布此问题的正确位置。您还可以在我们的gitter聊天室中获得对sails.js的实时社区支持:是的,完全正确!由于安全性和幂等性。我知道这一点,但仍然不明白为什么API会自动创建成这样(GitHub上有很多星星),我想知道我是否遗漏了一些东西。