Sails.js 创建的 REST API 真的是 RESTful 并遵循约定吗?
Is REST API created by Sails.js really RESTful and following the convention?
根据我正在阅读的一本书和几篇文章,指定 REST 的方法 API 是利用大多数 HTTP 方法,而不是将 GET 方法引入创建,它在演示中的显示方式Sails.js,您只需向
发出 GET 请求即可创建模型实例
/modelName/create?property=value
嗯,那根本不是 RESTful。相反,我们应该向 /modelName
发出 PUT 请求。或者,我在这里遗漏了什么吗?
在 REST API 中,用户几乎可以通过两种方式创建所有资源。
A POST
到将包含新资源的集合:
[Request]
POST /gizmos
{
"name": "widget"
}
[Response]
201 Created
Location: /gizmos/71
或者一个PUT
的新资源直接到它的位置:
[Request]
PUT /gizmos/71
{
"name": "widget"
}
[Response]
204 No Content
通过 GET /gizmos/create
创建资源是错误的。
GET
不应更改服务上的任何内容。做 0、1 或 1000 次应该都具有相同的效果:没有效果。
- URL 中不应该有动词。 URL 应该是一个名词。 HTTP 方法 -
GET
、POST
、PUT
、DELETE
- 是动词。
是的,你是。您从演示中学到的是从浏览器 url 栏访问休息操作的快捷方式或助手,这根本不是 restful。它用于测试目的(默认启用),不应在生产中使用。
使用 http 动词向您的控制器发出请求,例如对 /user/1
的 DELETE
请求将删除 ID 为 1 的用户。这非常 restful。
根据我正在阅读的一本书和几篇文章,指定 REST 的方法 API 是利用大多数 HTTP 方法,而不是将 GET 方法引入创建,它在演示中的显示方式Sails.js,您只需向
发出 GET 请求即可创建模型实例/modelName/create?property=value
嗯,那根本不是 RESTful。相反,我们应该向 /modelName
发出 PUT 请求。或者,我在这里遗漏了什么吗?
在 REST API 中,用户几乎可以通过两种方式创建所有资源。
A
POST
到将包含新资源的集合:[Request] POST /gizmos { "name": "widget" } [Response] 201 Created Location: /gizmos/71
或者一个
PUT
的新资源直接到它的位置:[Request] PUT /gizmos/71 { "name": "widget" } [Response] 204 No Content
通过 GET /gizmos/create
创建资源是错误的。
GET
不应更改服务上的任何内容。做 0、1 或 1000 次应该都具有相同的效果:没有效果。- URL 中不应该有动词。 URL 应该是一个名词。 HTTP 方法 -
GET
、POST
、PUT
、DELETE
- 是动词。
是的,你是。您从演示中学到的是从浏览器 url 栏访问休息操作的快捷方式或助手,这根本不是 restful。它用于测试目的(默认启用),不应在生产中使用。
使用 http 动词向您的控制器发出请求,例如对 /user/1
的 DELETE
请求将删除 ID 为 1 的用户。这非常 restful。