如何使用Swashbuckle.AspNetCore注入openapi规范文件


services.AddSwaggerGen(x =>
{

});

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

我的API与.net core中的文件上传有关,我已经编写了swagger规范文件swagger.yaml,它与editor.swaker.io配合得很好。有人能帮我吗?如何注入生成的开放式API规范文件,并将其与带有NuGetSwashbuckle.AspNetCore的.net内核中的SwaggerUI一起使用?

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

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

我也偶然发现了这一点。一种可行的解决方案是将打开的api/swagger文件托管在";wwwroot/swagger/swagger.yaml";和使用静态文件托管中间件。您只需要SwaggerUI依赖项,仅此而已。

在那之后,这就起作用了。

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

不幸的是,我遇到了一个问题,即.NET核心默认情况下不托管静态YAML文件。您可以通过配置FileExtensionContentTypeProvider或启用未知内容类型来解决此问题。

希望这能有所帮助。

最新更新