我们的ASP.NET Core Web应用程序有一个不断增长的控制器列表。在项目的构建时,我希望以编程方式为每个控制器生成一个单独的单独的swagger.json文件。(我们需要磁盘上的这些文件,以便由另一个进程拾取。)
我尝试过使用NSwag和Swashbuckle。我将它们配置为为每个Controller生成一个Document,但它们的构建时CLI库似乎只支持为单个指定文档生成单个swagger.json文件。我不想手动硬编码任何特定的文档或Controller引用。
https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/2578
https://github.com/RicoSuter/NSwag/issues/4292
1条答案
按热度按时间sr4lhrrt1#
下面是我使用NSWag提出的一个解决方案,但它最终可以使用任何可以生成文件的库。
基本上发生的是msbuild步骤“引导”你的web应用程序,在它被构建之后,这个过程检查一个特殊的标志(generate-swagger),以表明你只想生成swagger,然后退出这个过程。
Helper扩展方式
在Program/Startup.cs中调用并提供目录
将此添加到您的web .csproj中,以便在构建时生成