Swagger 是一个用于设计、构建、记录和使用 RESTful Web 服务的框架。它通过 Swagger 规范(OpenAPI 规范)来描述 API,并提供了一系列工具来生成、展示和维护这些 API 文档。
Swagger/OpenAPI:
以下是一个简单的示例,展示如何在 ASP.NET Core 项目中集成 Swagger:
首先,安装必要的 NuGet 包:
dotnet add package Swashbuckle.AspNetCore
在 Startup.cs
文件中进行配置:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
// 添加 Swagger 生成器
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
// 如果有 XML 注释,可以启用它们
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath);
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
// 启用 Swagger UI
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
创建一个简单的控制器,并添加一些 API 操作:
[ApiController]
[Route("[controller]")]
public class SampleController : ControllerBase
{
[HttpGet]
public ActionResult<string> Get()
{
return "Hello, World!";
}
[HttpPost]
public ActionResult<string> Post([FromBody] string value)
{
return $"Received: {value}";
}
}
原因:
解决方法:
app.UseSwagger()
和 app.UseSwaggerUI()
在 Configure
方法中正确调用。SwaggerDoc
方法中的版本名称是否与 SwaggerEndpoint
中的版本匹配。原因:
[ApiController]
或 [Route]
。解决方法:
[ApiController]
。[HttpGet]
, [HttpPost]
等)。通过以上步骤,你应该能够在 .NET 项目中成功集成并使用 Swagger 来生成和管理 API 文档。
领取专属 10元无门槛券
手把手带您无忧上云