Ajax 在成功的RESTAPI POST/PUT/DELETE请求中返回数据字段是可接受的最佳实践吗?
只是一个一般性的“最佳实践”问题: 假设我向REST API发出了一个AJAXAjax 在成功的RESTAPI POST/PUT/DELETE请求中返回数据字段是可接受的最佳实践吗?,ajax,api,rest,Ajax,Api,Rest,只是一个一般性的“最佳实践”问题: 假设我向REST API发出了一个AJAXPUT请求,以更新特定资源: $.ajax({ url: "/loads/" + id, type: "PUT", data: { name: "some name", age: 34, title: "some title", company: "some company" }, success: function
PUT
请求,以更新特定资源:
$.ajax({
url: "/loads/" + id,
type: "PUT",
data: {
name: "some name",
age: 34,
title: "some title",
company: "some company"
},
success: function(data) {
console.log(data);
}
});
直接(由于放置
)或间接(由于其他影响)返回自放置
以来已更改的此资源上的任何属性是否可以接受
例如,PUT
请求可以返回:
{
age: 37
}
由于影响该物业的其他消费者/因素
否则,在
PUT
之后是否应该进行第二次GET
调用以检索(潜在的)新资源?是的,这是完全可以接受的,甚至可能是可取的。毕竟,REST代表代表国家转移,因此在国家变更生效后显示受影响实体的状态并没有错。您还可以通过不需要后续的GET
请求来最小化聊天
如果为该操作的结果定义了语义媒体类型,则也可以传达此信息。您应该查看mBaaS提供程序的现有REST API。许多人通常会发回新修改的对象;谢谢出于好奇,您所说的“语义媒体类型”到底是什么意思?语义媒体类型是一种传递有关状态表示的信息的媒体类型。这正是浏览器的工作方式。例如,当浏览器看到
文本/html
或图像/jpeg
时,它知道解释该内容必须遵循的规则。同样,您将在自定义媒体内容的描述中传达这些规则(例如application/json+person
)。这是第三级的。