我正在构建一些模型来与之前项目中的现有API进行交互.
API依赖于标准POST方法来保存数据.
我已经将模型和代理配置到将数据推送到服务器的位置,但似乎只有两种编写器类型,json和xml.
proxy: {
/* ... */
reader: {
type: 'json',
root: 'results'
},
writer: {
type: '???' // <-- can only see json or xml in the docs
}
}
Run Code Online (Sandbox Code Playgroud)
是不是只有在post字段中提交数据的标准POST编写器?
我很惊讶不会是标准的作家类型.
(解析json格式不会太难实现,但这意味着要更新许多旧的api文件.)
好吧,通过检查现有的编写器源代码,我能够很容易地创建该编写器.
现有编写者能够做到的一件事 - 也就是开发团队只实现json和xml版本的原因 - 就是他们可以同时推送多个记录.
这可以在POST中实现,但会有点复杂.
如果您尝试使用POST将单个模型推送到api,则此编写器将起作用:
Ext.define('Ext.data.writer.SinglePost', {
extend: 'Ext.data.writer.Writer',
alternateClassName: 'Ext.data.SinglePostWriter',
alias: 'writer.singlepost',
writeRecords: function(request, data) {
request.params = data[0];
return request;
}
});
Run Code Online (Sandbox Code Playgroud)
并将其用于代理中的writer:
writer: {
type: 'singlepost'
}
Run Code Online (Sandbox Code Playgroud)