在一个服务中引用多个API调用(Angular)
Referencing multiple API calls in one Service (Angular)
我正在通过Angular$http请求访问API,以收集不同足球队的信息。
如果我只访问一个团队,那就好了——我会创建一个进行调用的Service,然后在我的控制器中引用Service函数。然而,我想在许多团队中做到这一点,而不必为每个团队创建单独的服务模块。
服务
app.factory('APIService', ['$http',
function($http) {
return $http.get('http://API/team/1204?Authorization=xxxxx')
.success(function(data) {
return data;
})
.error(function(err) {
return err;
});
}
]);
在我的控制器内部
APIService.success(function(data) {
$scope.apiData = data;
});
正如您在服务中看到的,团队是特定的,"1204",并且只会从该团队中提取数据。我想创建一个函数,允许四位数的代码根据团队的不同而可互换,但我不知道如何放置,也不知道放在哪里
任何帮助都将不胜感激。提前谢谢。
我构建了一个通用角度服务,它是应用程序中唯一需要的服务。
https://github.com/cullimorer/AngularGenericAPIService
该服务包含许多不同的方法:
GET(数组)-GetListData
GET-GetData
PUT-更新数据
POST-添加数据
DELETE-DeleteData
那么,这有什么特别之处?好吧,这样做的结果是,您可以调用任何端点,传递任意数量的参数。这很像C#中的"string.Format"函数,它将获取指定对象的值,并将它们插入另一个字符串中。commonService包含一个名为"stringFormat"的方法,该方法复制此功能以供通用API服务使用。
让我们看看我们在实践中是如何做到这一点的。如果您想调用一个名为"fooBars"的restful API端点,传入1的"ID"以返回单个"fooBar",我们会这样做:
return genericService.getData('fooBars/{0}', [1]);
这将使用以下URL调用API:
"http://localhost/API/fooBars/1"
第二个参数是一个数组,通过这种方式,您可以将任意多的参数传递到字符串中,假设我们有许多"foo"answers"bar",我们可以这样做:
return genericService.getData('foos/{0}/bars/{1}', [1, 2]);
这将使用以下URL调用API:
"http://localhost/API/foos/1/bars/2"
等等。这是一个非常简单的服务,但我在所有AngularJS项目中都使用它,因为它非常容易实现,这意味着你不必在Angular服务中编写大量不同的查询或编写长字符串连接。
- 如何在 API 调用后和 if 语句中启用提交按钮
- NodeJS API调用中Array中的Push和Pull元素
- 在Chrome扩展内部输出Google API调用
- IE11中的第二个调用取消了第一个Fetch API调用
- RxjsObservable:通过一个API调用订阅不同的值
- 通过API调用过滤数据
- 给出<选项>标记一个类?API调用不工作
- 使用Angular获取数据API调用时出错
- javascript API调用导致旧数据
- 在一个服务中引用多个API调用(Angular)
- 背景:'userId'在SignUp API调用后为null
- 对/Token的ASP Web API调用间歇性
- Web API 调用在设备模式下失败
- 将使用 $.ajax() 和 JSONP 的 API 调用替换为服务器到服务器的 API 调用
- 如何将 JavaScript Yahoo Weather API 调用属性替换为变量
- 谷歌日历 api 调用可以在角度工厂内返回承诺吗?
- 仅显示 Google 表格中来自 api 调用的最新数据行
- 我的 API 调用没有返回任何内容
- 如何通过声云 api 调用获取用户 ID
- 在 api 调用$resource显示错误和成功消息