繁体   English   中英

如何在 ASP.NET Core 6 Web API 中从第三方 API 获取数据

[英]How to fetch data from a third party API in ASP.NET Core 6 Web API

我目前正在尝试向我的 ASP.NET Core 6 Web API 中的第三方库request并使用这些数据(它确实必须在 Web API 模板上运行)。

这意味着我正在从另一个 API 导入数据。

不幸的是,我不知道如何告诉我的应用程序拨打电话。 我本来希望Task在应用程序启动时自动运行。 不幸的是,这种情况并非如此。

我首先想在应用程序启动时测试这是否有效。 后来,我会构建一个调度程序,它会相应地发送请求。

这应该是可能的,对吧?

如果有人能告诉我是否可以以某种方式将 URL“localhost:xxx/”放在构造函数中,但仍然没有使用AddScoped得到任何依赖注入错误,那就太好了。

我使用Flurl.Http发出 Http 请求。

如果很重要。 我的program.cs位于控制台应用程序中,而 DataImport 位于空项目中

不幸的是,我对 ASP.NET 世界还比较陌生,我希望这个问题不会太不专业。 否则我道歉。 谷歌搜索这样的问题并找到一些东西有点困难

using Flurl;
using Flurl.Http;

public class DataImport
{
    private readonly Service service;

    public DataImport(Servie service)
    {
        _service = service;
    }

    public async Task<IEnumerable<Data>> ImportData()
    {
        var data = await "localhost:xxx/".AppendPathSegment("data").GetJsonAsync<DataDto[]>();
        return _service.Add(data.Select(it => new DatoDtoToData(it)));
    }
}

program.cs

builder
.Services
... Service Injections
....
.AddScoped<DataImport>()

我鼓励您研究 Azure Functions。

查看 Microsoft 的Azure Functions 简介 场景部分,我们可以阅读。

以下是 Azure Functions 的一组常见但绝不详尽的方案。

如果你想... 然后...
构建网络 API 使用 HTTP 触发器为您的 Web 应用程序实现端点
...
构建无服务器工作流 使用持久函数将一系列函数链接在一起
...
运行计划任务 按预定义的时间间隔执行代码
...

我真的认为这对你很有用,因为:

  1. 您可以在本地运行/托管它或在 Azure 中托管它。
  2. 这很容易开始。 微软的教程是:
  3. 它支持多种触发功能的方式。 有超过 20 只跳跳虎; 与您最相关的 2 个应该是:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM