ngResource 和 Json API 规范
ngResource and Json API spec
我正在使用符合 JSON API 规范的 API。
http://jsonapi.org/
我正在使用 ngResource 在 Ionic 中构建一个应用程序,resource.query() 方法期望响应是一个数组:
[
{
"id": 1,
"foo": "bar"
},
{
...
}
]
但是 JSON API 规范通过了嵌套在 data
属性下的规范:
{
"data": [
{
"id": 1,
"foo": "bar"
},
{
...
}
]
}
我怎样才能自动 post- 处理来自 API 的响应以满足 ngResource 的期望?
查看 transformResponse 和拦截器对象。
https://docs.angularjs.org/api/ngResource/service/$resource
编辑:添加代码
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
return {
'response': function(response) {
response.data = response.data.data;
return response;
}
};
});
$httpProvider.interceptors.push('myHttpInterceptor');
编辑:
如下所示,查询方法默认用于处理数组。
{ 'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'}
};
- 您可以使用简单的 GET 方法从您的 api 获取对象列表响应。
- 或者您可以将查询默认行为更改为这种方式。
:
var config = { method:'GET', isArray: false };
var url = 'http://jsonapi.org';
$resource(url, {}, {query: config});
了解更多详情。请检查 https://docs.angularjs.org/api/ngResource/service/$resource
我正在使用符合 JSON API 规范的 API。
http://jsonapi.org/
我正在使用 ngResource 在 Ionic 中构建一个应用程序,resource.query() 方法期望响应是一个数组:
[
{
"id": 1,
"foo": "bar"
},
{
...
}
]
但是 JSON API 规范通过了嵌套在 data
属性下的规范:
{
"data": [
{
"id": 1,
"foo": "bar"
},
{
...
}
]
}
我怎样才能自动 post- 处理来自 API 的响应以满足 ngResource 的期望?
查看 transformResponse 和拦截器对象。
https://docs.angularjs.org/api/ngResource/service/$resource
编辑:添加代码
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
return {
'response': function(response) {
response.data = response.data.data;
return response;
}
};
});
$httpProvider.interceptors.push('myHttpInterceptor');
编辑:
如下所示,查询方法默认用于处理数组。
{ 'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'}
};
- 您可以使用简单的 GET 方法从您的 api 获取对象列表响应。
- 或者您可以将查询默认行为更改为这种方式。
:
var config = { method:'GET', isArray: false };
var url = 'http://jsonapi.org';
$resource(url, {}, {query: config});
了解更多详情。请检查 https://docs.angularjs.org/api/ngResource/service/$resource