Sails.js创建的REST API是否真的RESTful并遵循惯例?

时间:2015-04-20 17:21:12

标签: javascript node.js rest sails.js watermark

基于我正在阅读的一本书和一些文章,指定REST API的方法是使用大多数HTTP方法,而不是将GET方法用于创建,如何在Sails.js的demo中显示,你可以只需向GET请求

创建模型实例
/modelName/create?property=value

嗯,那根本不是RESTful。相反,我们应该向/modelName发出PUT请求。或者,我在这里错过了什么?

2 个答案:

答案 0 :(得分:2)

在REST API中,有两种方法可以由用户创建几乎所有资源。

  1. 包含新资源的集合的POST

    [Request]
    POST /gizmos
    {
        "name": "widget"
    }
    
    [Response]
    201 Created
    Location: /gizmos/71
    
  2. PUT新资源直接到其位置:

    [Request]
    PUT /gizmos/71
    {
        "name": "widget"
    }
    
    [Response]
    204 No Content
    
  3. 通过GET /gizmos/create创建资源很糟糕。

    • GET不应更改服务上的任何内容。这样做0,1或1000次都应该具有相同的效果:没有效果。
    • 网址中不应包含动词。 URL应该是名词。 HTTP方法 - GETPOSTPUTDELETE - 是动词。

答案 1 :(得分:1)

是的,你是。您从演示中学到的是从浏览器URL栏访问休息操作的快捷方式或助手,这些操作根本不是很安静。它用于测试目的(默认启用),不应在生产中使用。

使用http谓词向您的控制器发出请求,例如对DELETE的{​​{1}}请求将删除ID为1的用户。这非常安静。