我有一个针对.NET Core 2.1框架的ASP.NET Core MVC应用程序。该应用程序提供RESTful API并返回JSON数据。
在SwaggerHub中使用基于Web的交互式SwaggerGen,我创建了一个API定义文档,并将其以JSON格式保存为ASP.NET Core MVC应用程序项目中的文件夹中的“ swagger.json”。
由于已经定义了API,因此不需要在应用程序中运行SwaggerGen。我只想SwaggerUI来显示我创建的静态“ swagger.json”文件。
我已经阅读了Swashbuckle文档以及一些“如何开始使用Swashbuckle”教程,但是他们都假定SwaggerGen将用于根据我的API动态创建Swagger API文档。
我已将'Swashbuckle.AspNetCore'NuGet软件包添加到应用程序的依赖项中。
在应用程序的Startup.cs类的Configure()方法中,我添加了UseSwaggerUI指令:
app.UseSwaggerUI(c => {
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
在Visual Studio中运行应用程序时,我得到一个正常的空白页。
根据Swashbuckle文档,假定已添加SwaggerGen并已动态生成API定义(文件?),则应该在相对的“ / swagger”路径中使用SwaggerUI格式的API文档。
获取相对的'/ swagger'路径会产生'400 Bad Request'错误。
问:SwaggerGen会产生自己的“ swagger.json”文件吗?如果是的话,它将在哪里创建该文件?
问:有没有办法告诉SwaggerUI在哪里找到并显示我手动创建的“ swagger.json” API定义文件?
谢谢!
答案 0 :(得分:0)
您可以使用URL
参数告诉任何Swagger-UI在哪里找到文件:
这就是您所需要的,如果您已经使用SwaggerHub生成了定义,则可以使用任何Swagger-UI,而无需安装swashbuckle。
如果您想自己托管Swagger-UI,只需将dist文件夹复制到您的Web服务器:
https://github.com/swagger-api/swagger-ui/tree/master/dist
答案 1 :(得分:0)
在本地计算机上,创建一个小型节点项目,安装swagger-ui-dist
将已安装的文件从node_modules / swagger-ui-dist复制到托管swagger网站的Web服务器
将生成的swagger.json复制到Web服务器中的同一文件夹
编辑index.html并将URL添加到您的json中,例如。 '/swagger.json'
完成
来源
https://yanhan.github.io/posts/2017-11-26-using-swagger-ui-with-any-codebase.html