Web API 的测试始终是一个挑战,因为它暴露了端点而不是 UI。测试此类内容可能依赖于第三方工具,例如 fiddler 和 Post-Man,以及 Web API 端点。Swagger 可以解决这个问题。它提供了 RESTful API 的 UI 表示,没有任何实现逻辑。它允许用户无需任何代码访问即可了解服务的功能,并且还减少了创建服务文档的时间。
Swagger 可以使用 Swashbuckle.AspNetCore 和 NSwag 包在 ASP.net 核心 Web API 中实现。两者都是为 ASP.NET Core Web API 生成 Swagger 文档的开源项目。此外,NSwag 还提供了为 API 生成 TypeScript 客户端代码和 C# 服务器代码的方法。
使用 Swashbuckle.AspNetCore 在 ASP.net Core Web API 中配置 Swagger
以下是使用 Swashbuckle.AspNetCore 在 ASP.net Core Web API 中配置 Swagger 的步骤。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1.0", new Info { Title = "My Demo API", Version = "1.0" });
});
}
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1.0", new Info { Title = "My Demo API", Version = "1.0" });
c.IncludeXmlComments(System.IO.Path.Combine(System.AppContext.BaseDirectory, "SwaggerDemo.xml"));
});
}
使用 NSwag 在 ASP.net Core Web API 中配置 Swagger
以下是使用 NSwag.AspNetCore 在 ASP.net Core Web API 中配置 Swagger 的步骤