在ASP.NET Core项目中,可以使用Swashbuckle.AspNetCore库来生成OpenAPI规范的文档,并且可以使用Swagger UI来浏览和测试API。当使用OpenAPI生成的HttpClient时,可以通过以下步骤解决无法注入的问题:
using Microsoft.OpenApi.Models;
public void ConfigureServices(IServiceCollection services)
{
// ...其他服务配置
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "API", Version = "v1" });
// 如果生成的HttpClient是通过接口定义的
c.GeneratePolymorphicSchemas();
// 如果生成的HttpClient是通过具体类型定义的
// c.GeneratePolymorphicSchemas();
});
// ...其他服务配置
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...其他配置
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1");
});
// ...其他配置
}
using System.Net.Http;
public class MyController : ControllerBase
{
private readonly HttpClient _httpClient;
public MyController(HttpClient httpClient)
{
_httpClient = httpClient;
}
// ...其他控制器方法
}
通过以上步骤,就可以在ASP.NET Core项目中成功注入由OpenAPI生成的HttpClient实例,并且可以使用Swagger UI来测试API。