【问题标题】:Consume API from API .NET CORE从 API .NET CORE 使用 API
【发布时间】:2021-06-25 03:59:49
【问题描述】:

我用 ASP.NET Core 制作了一些 API。
然后其中一个 API 需要访问 3rd 方 API。我该怎么做?

比方说,第 3 方 API 提供带有 3 个参数(姓名、地址、电话)的 JSON 格式。第 3 方 API 是插入到表中。 我的 API 将向第 3 方 API 发送 JSON 格式。如何从我的 API 中使用它?

以下是我的 API 代码之一:
控制器:

[HttpPost]
    public async Task<IActionResult> InsertUpdate(Devloperr model)
    {
        try
        {
            var result = await repo.InsertUpdate(model);
            if (result > 0)
            {
                return Ok("Data has been saved");
            }
            return Ok("Data not saved");
        }
        catch (Exception e) { return StatusCode(500, e.Message); }
    }

存储库:

public async Task<int> InsertUpdate(Devloperr model)
        {
            mySqlConnection.Open();
            var cmd = mySqlConnection.CreateCommand();
            cmd.CommandText = @"SELECT `ID` FROM `Table1` WHERE `ID` =@ID";
            var data = await mySqlConnection.QueryAsync<Devloperr>(cmd.CommandText, param: new { ID = model.ID } );

            if (data.Count() == 1)
            {
               cmd.CommandText = @"UPDATE `Table1` SET `ID` = @ID, `NAMA` = @NAMA, `USERNAME` = @USERNAME WHERE `ID`=@ID ;";
                parameters.AddDynamicParams(model);
                var result = await mySqlConnection.ExecuteAsync(cmd.CommandText, parameters, commandType: sql);
                return result;
            }
            else
            {
                cmd.CommandText = @"INSERT INTO `Table1`(`ID`,`NAMA`,`USERNAME`) VALUES (@ID, @NAMA, @USERNAME);";
                parameters.AddDynamicParams(model);
                var result = await mySqlConnection.ExecuteAsync(cmd.CommandText, parameters, commandType: sql);
                return result;
               
            }

        }

请指教。谢谢。

【问题讨论】:

标签: c# .net api asp.net-core


【解决方案1】:

我的 API 将向第 3 方 API 发送 JSON 格式。如何从我的 API 中使用它?

您可以注册一个IHttpClientFactory 并将其用于configure and create HttpClient instance in your ASP.NET Core Web API 项目,然后向该第 3 方 API 发出 HTTP 请求。

拨打AddHttpClient注册IHttpClientFactory

public void ConfigureServices(IServiceCollection services)
{
    //...

    services.AddHttpClient();

    // ...
    // Remaining code deleted for brevity.
}

从您的 API 操作发出 HTTP 请求

var client = _clientFactory.CreateClient();
//client.DefaultRequestHeaders.Add("Authorization", $"bearer {your_token_here}");

var mdata = new { Name = "test", Address = "xxx", Phone = "123456789" };

var content = new StringContent(System.Text.Json.JsonSerializer.Serialize(mdata), System.Text.Encoding.UTF8, "application/json");


var response = await client.PostAsync("https://xxxX/api/XXX", content);

if (response.IsSuccessStatusCode)
{
    //...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 2021-06-29
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 2018-05-08
    相关资源
    最近更新 更多