“AddSwaggerGen”的操作未被调用

问题描述 投票:0回答:1

我正在努力解决 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
1个回答
0
投票

问题是有两个用于生成 Swagger 文档的框架:Swashbuckle 和 NSwag。

SwaggerDocument()
UseSwaggerGen()
来自 FastEndpoints,并使用 NSwag。
AddSwaggerGen()
UseSwagger()
来自 Swashbuckle。因此,根据顺序,仅使用其中之一,而另一半中的代码永远不会被调用。

所以解决办法是:

  1. 比较两个框架并决定一个
  2. 请记住,Swashbuckle 将从 AspNetCore
  3. 中删除
  4. 然后删除未使用的框架并重新实现所有内容
© www.soinside.com 2019 - 2024. All rights reserved.