gpt4 book ai didi

angularjs - 为多个API调用构建 '$resource'服务

转载 作者:行者123 更新时间:2023-12-03 06:43:59 26 4
gpt4 key购买 nike

我创建了一个工厂服务,可以使用以下代码从 API 获取数据。

app.factory('Book', ['$resource','$http', function($resource, $http) {
return $resource('http://someurl.com/api/book/', {}, {
query: {method:'GET', isArray:false}
});
}]);

上面的代码适用于获取数据,但我希望有一个可以解析的服务,然后可以访问所有不同的 api 调用。下面是使用 $http 服务构建它的理论方法,但我无法让它工作。我还想拥有 $resource 的功能。我所希望的是有人给我一些语法上的指导,我如何将每个 $resource “调用”分离到附加到服务的函数中?就像下面的 $http 服务一样。

app.service('dataService', ['$resource','$http', function($resource, $http) {    
var urlBase = 'http://someurl.com/api/';

this.getBooks = function () {
return $http.get(urlBase + 'book')
};

this.getArticles = function () {
return $http.get(urlBase + 'articles');
};
}]);

最佳答案

进行编辑以反射(reflect)您的需求。不过还没有尝试过运行它。

app.factory('DataService', ['$resource',
function($resource) {
return $resource('http://someurl.com/api/:path', {
path: '@path'
}, {
getBook: {
method: 'GET',
params: {
path: 'book'
}
}
}, {
getArticles: {
method: 'GET',
params: {
path: 'articles'
},
isArray: true
}
});
}
])

然后在您的 Controller 中,只需使用正确的路径调用资源服务:

this.getBook = function() {
$scope.book = DataService.getBook({}, function success() {
//your code
}, function err() {
//your code
});
};

this.getArticles = function() {
$scope.articles = DataService.getArticles({}, function success() {
//your code
}, function err() {
//your code
});
};

关于angularjs - 为多个API调用构建 '$resource'服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24931347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com