我正在努力解决 FastEndpoints 的 Swagger 设置。我调用了这个方法:
WebApplicationBuilder builder = ...
builder.Services.SwaggerDocument();
builder.Services.AddSwaggerGen(options => DoMagic(options));
WebApplication app = ...
app.UseSwaggerGen();
app.UseSwagger();
但是,
DoMagic
永远不会被调用。我在文档中看不到任何可以解释为什么不的内容。 AddSwaggerGen()
被叫了,我确定了。
我发现另外两个人也有同样的问题,但他们的错误已关闭且没有评论:https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/2249
显然这对大多数人都有效,那么哪里可能做错了呢?我如何才能调用该操作?
问题是有两个用于生成 Swagger 文档的框架:Swashbuckle 和 NSwag。
SwaggerDocument()
和 UseSwaggerGen()
来自 FastEndpoints,并使用 NSwag。AddSwaggerGen()
和 UseSwagger()
来自 Swashbuckle。因此,根据顺序,仅使用其中之一,而另一半中的代码永远不会被调用。
所以解决办法是: