gpt4 book ai didi

javascript - 在一项服务中引用多个 API 调用( Angular )

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:05 25 4
gpt4 key购买 nike

我正在通过 Angular $http 请求访问 API 以收集不同足球队的信息。

如果我只访问一个团队,这很好 - 我会创建一个发出调用的服务,然后在我的 Controller 中引用该服务函数。但是,我想在多个团队中执行此操作,而不必为每个团队创建单独的服务模块。

服务

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;
});
}
]);

在我的 Controller 中...

APIService.success(function(data) {
$scope.apiData = data;
});

正如您在服务中看到的那样,该团队是特定的“1204”,并且只会从该团队中提取数据。我想创建一个函数,允许四位数代码根据团队互换,但我不知道如何或在哪里放置它。

如有任何帮助,我们将不胜感激。提前致谢。

最佳答案

我构建了一个通用 Angular 服务,这是您在应用程序中唯一需要的服务。

https://github.com/cullimorer/AngularGenericAPIService

该服务包含许多不同的方法:

GET(数组)- GetListData

获取 - 获取数据

PUT - 更新数据

POST - 添加数据

删除 - 删除数据

那么,这有什么特别之处呢?好吧,发生的事情是您可以调用任何端点并传入任意数量的参数。这很像 C# 中的“string.Format”函数,它将获取指定对象的值并将它们插入到另一个字符串中。 commonService 包含一个名为“stringFormat”的方法,它复制了此功能以供通用 API 服务使用。

让我们看看我们如何在实践中做到这一点。如果你想调用一个名为“fooBars”的 restful API 端点,传递一个“ID”为 1 以返回一个“fooBar”,我们会这样做:

return genericService.getData('fooBars/{0}', [1]);

这将使用 URL 调用 API:

"http://localhost/API/fooBars/1 "

第二个参数是一个数组,这样你可以在字符串中传入任意多的参数,假设我们有一些“foos”和“bars”我们可以这样做:

return genericService.getData('foos/{0}/bars/{1}', [1, 2]);

这将使用 URL 调用 API:

"http://localhost/API/foos/1/bars/2 "

等等。这是一个非常简单的服务,但我在所有 AngularJS 项目中都使用它,因为它很容易实现,并且意味着您不必在 Angular 服务中编写大量不同的查询或编写长字符串连接。

关于javascript - 在一项服务中引用多个 API 调用( Angular ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36953997/

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