簡體   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