要在ASP.NET Swagger中展示错误,您需要遵循以下步骤:
- 首先,确保您已经安装了Swashbuckle.AspNetCore包。如果没有,请在项目中使用以下命令安装:
dotnet add package Swashbuckle.AspNetCore
- 在
Startup.cs
文件中,将Swashbuckle添加到ConfigureServices
方法中:
public void ConfigureServices(IServiceCollection services) { services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" }); }); }
- 在
Configure
方法中,将Swagger添加到中间件管道中:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseSwagger(); app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1")); } app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
- 为了在Swagger UI中显示错误,您需要在控制器操作中添加
[ApiExplorerSettings(IgnoreApi = true)]
属性。这将告诉Swagger忽略此操作。例如:
[ApiExplorerSettings(IgnoreApi = true)] [HttpGet("ignore")] public IActionResult IgnoreMethod() { return Ok("This method will not be shown in Swagger UI."); }
- 如果您想在Swagger文档中显示错误信息,可以使用
[ApiResponse]
属性。例如:
[ApiResponse(statusCode: 400, description: "Bad Request", content: new[] { new { property = "value" } }) [HttpGet("badrequest")] public IActionResult BadRequestMethod() { return BadRequest("This is a bad request."); }
- 部署并运行应用程序。现在,当您在Swagger UI中调用已配置的操作时,错误信息将显示在相应的错误响应部分。
请注意,这些步骤适用于Swashbuckle.AspNetCore 5.0及更高版本。如果您使用的是早期版本,可能需要稍微调整配置和代码。