在 Ember 中自定义请求格式
Customize request format in Ember
我正在构建一个 Rails 5 后端 API,它将接收来自我的 Ember 应用程序的请求。但是,我在 Ember 以我的 Rails 服务器理解的方式格式化请求时遇到了一些问题。
默认情况下,Rails 创建控制器以期望此格式的参数,假设模型是 Car
:
"car": {
"id": "1",
"name": "Foo",
"bar": "Bar",
...
}
但看起来 Ember 正在以这种格式发送请求:
"data": [
{
id: "1",
type: "cars",
attributes: {
"name: "Foo",
"bar": "Bar",
...
}
]
我该怎么做才能使 Ember 以我的 Rails 服务器能够理解的方式发送请求负载?谢谢。
您的 Rails 正在接受 REST 适配器格式,要使其正常工作,您的适配器应扩展 DS.RESTAdapter
并且序列化程序应扩展 DS.RESTSerializer
。默认情况下,它将带有 JSONAPIAdapter
和 JSONAPISerializer
.
如果您可以控制后端代码,请考虑编写 json-api 格式响应,ember 将开箱即用。
参考:
https://emberjs.com/api/ember-data/2.14/classes/DS.RESTAdapter
https://emberjs.com/api/ember-data/2.14/classes/DS.RESTSerializer
https://emberjs.com/api/ember-data/2.14/classes/DS.JSONAPIAdapter
https://emberjs.com/api/ember-data/2.14.9/classes/DS.JSONAPISerializer
我正在构建一个 Rails 5 后端 API,它将接收来自我的 Ember 应用程序的请求。但是,我在 Ember 以我的 Rails 服务器理解的方式格式化请求时遇到了一些问题。
默认情况下,Rails 创建控制器以期望此格式的参数,假设模型是 Car
:
"car": {
"id": "1",
"name": "Foo",
"bar": "Bar",
...
}
但看起来 Ember 正在以这种格式发送请求:
"data": [
{
id: "1",
type: "cars",
attributes: {
"name: "Foo",
"bar": "Bar",
...
}
]
我该怎么做才能使 Ember 以我的 Rails 服务器能够理解的方式发送请求负载?谢谢。
您的 Rails 正在接受 REST 适配器格式,要使其正常工作,您的适配器应扩展 DS.RESTAdapter
并且序列化程序应扩展 DS.RESTSerializer
。默认情况下,它将带有 JSONAPIAdapter
和 JSONAPISerializer
.
如果您可以控制后端代码,请考虑编写 json-api 格式响应,ember 将开箱即用。
参考:
https://emberjs.com/api/ember-data/2.14/classes/DS.RESTAdapter
https://emberjs.com/api/ember-data/2.14/classes/DS.RESTSerializer
https://emberjs.com/api/ember-data/2.14/classes/DS.JSONAPIAdapter https://emberjs.com/api/ember-data/2.14.9/classes/DS.JSONAPISerializer