【问题标题】:How to inject openapi specification file with Swashbuckle.AspNetCore如何使用 Swashbuckle.AspNetCore 注入 openapi 规范文件
【发布时间】:2022-04-22 15:46:30
【问题描述】:
services.AddSwaggerGen(x =>
{
                
});

我探索了 NuGet Swashbuckle.AspNetCoreAddSwaggerGen() 方法。不幸的是,我还没有找到使用已经生成的开放 API 规范文件的path 的方法。

我的 API 与 .net 核心中的文件上传相关,我已经编写了 swagger 规范文件 swagger.yaml 并且它与 editor.swagger.io 一起工作正常。谁能帮我?如何通过 NuGet Swashbuckle.AspNetCore 注入生成的开放 API 规范文件并将其与 .net 核心中的 SwaggerUI 一起使用?

app.UseSwaggerUI(c =>
{
  c.SwaggerEndpoint("/swagger/swagger.yaml", "My API V1");
});

我在我的项目中创建了一个静态文件/swagger/swagger.yaml 但是 Swagger UI 仍然使用内部生成的相同文件。

【问题讨论】:

  • 你可以看到这个thread和这个article
  • 我看到这个问题已经 8 个月大了......你最后找到怎么做了吗? :)

标签: swagger swashbuckle.aspnetcore


【解决方案1】:

我也偶然发现了这一点。一种可行的解决方案是在“wwwroot/swagger/swagger.yaml”中托管 open-api/swagger 文件并使用 静态文件托管中间件。你只需要 SwaggerUI 依赖,仅此而已。

之后,这工作。

app.UseSwaggerUI(c =>
{
  c.SwaggerEndpoint("/swagger/swagger.yaml", "My API V1");
});

不幸的是,我遇到了 .NET 核心默认不托管静态 YAML 文件的问题。您可以通过configuring FileExtensionContentTypeProviderenabling serve unknown content types 解决此问题。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2019-10-28
    • 2020-03-23
    • 2022-07-28
    • 1970-01-01
    • 2020-05-29
    • 2023-02-16
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    相关资源
    最近更新 更多