Javascript 由Sails.js创建的RESTAPI真的是RESTful的并且遵循惯例吗?
根据我读过的一本书和几篇文章,指定RESTAPI的方法是使用大多数HTTP方法,而不是将GET方法引入到创建中,正如在Sails.js的演示中所示,您只需向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" }
/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
创建资源是错误的
不应更改服务上的任何内容。做0次、1次或1000次都应该有相同的效果:没有效果GET
- URL中不应包含动词。URL应该是一个名词。HTTP方法--
、GET
、POST
、PUT
--是动词DELETE
是的,你是。您从演示中学到的是一个快捷方式或帮助程序,可以从根本不是restful的浏览器url栏访问rest操作。它用于测试目的(默认情况下启用),不应在生产中使用
使用http动词向控制器发出请求,例如,
DELETE
请求/user/1
将删除id为1的用户。这很舒服。你说得很对。get请求应该是一个安全(nullipotent)方法,无论调用的频率有多高,它都应该或多或少返回相同的数据结构,但更重要的是,不应自行修改数据结构。Github问题可能是发布此问题的正确位置。您还可以在我们的gitter聊天室中获得对sails.js的实时社区支持:是的,完全正确!由于安全性和幂等性。我知道这一点,但仍然不明白为什么API会自动创建成这样(GitHub上有很多星星),我想知道我是否遗漏了一些东西。