FastEndpoints中Swagger的AddSwaggerGen委托未执行问题求助
FastEndpoints配置Swagger时自定义配置不执行的问题解决
问题原因
- FastEndpoints的封装覆盖手动配置:
SwaggerDocument()扩展方法内部已经完成了Swashbuckle的AddSwaggerGen服务注册,后续手动调用AddSwaggerGen()时,Swashbuckle会检测到相关服务已注册,直接跳过执行你的DoMagic配置委托。 - 错误调用中间件方法:代码中的
app.UseSwaggerGen()是无效调用,Swashbuckle并无此中间件方法,属于误用。
解决办法
- 改用FastEndpoints的配置入口:放弃手动调用
AddSwaggerGen(),直接通过SwaggerDocument()的重载传入自定义配置逻辑:WebApplicationBuilder builder = ... // 将配置委托直接传入SwaggerDocument builder.Services.SwaggerDocument(options => DoMagic(options)); WebApplication app = ... app.UseSwagger(); // 若需要Swagger UI,添加此行 app.UseSwaggerUI(); - 移除无效调用:彻底删除
app.UseSwaggerGen(),避免不必要的程序错误。
补充说明
FastEndpoints对Swagger的封装旨在简化配置流程,所有Swagger相关的自定义配置都应通过SwaggerDocument()的参数传入,而非重复调用Swashbuckle原生的AddSwaggerGen()。
内容的提问来源于stack exchange,提问作者Stefan S.
相关产品推荐
相关产品推荐

