gpt4 book ai didi

asp.net-core-mvc - 如何使用 Swashbuckle 的 SwaggerUI 来显示静态 swagger.json 文件而不是 SwaggerGen 的动态创建的定义?

转载 作者:行者123 更新时间:2023-12-04 17:34:54 25 4
gpt4 key购买 nike

我有一个针对 .NET Core 2.1 框架的 ASP.NET Core MVC 应用程序。此应用程序提供 RESTful API 并返回 JSON 数据。

SwaggerHub 中使用基于 Web 的交互式 SwaggerGen ,我已经创建了一个 API 定义文档,并将它以 JSON 格式保存为 'swagger.json' 在我的 ASP.NET Core MVC 应用程序项目的文件夹中。

Manually created 'swagger.json' API definition file

因为我已经定义了 API,所以我不需要在我的应用程序中运行 SwaggerGen。我只想让 SwaggerUI 显示我创建的静态“swagger.json”文件。

我已经阅读了 Swashbuckle 文档以及几个“如何开始使用 Swashbuckle”教程,但它们都假设 SwaggerGen 将用于从我的 API 动态创建 Swagger API 文档。

我已将“Swashbuckle.AspNetCore”NuGet 包添加到我的应用程序依赖项中。

Swashbuckle.AspNetCore NuGet package

在我的应用程序的 Startup.cs 类的 Configure() 方法中,我添加了 UseSwaggerUI 指令:

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

当我在 Visual Studio 中运行我的应用程序时,我得到一个正常的空白页面。

ASP.NET Core MVC application running

根据 Swashbuckle 文档,假设 SwaggerGen 已添加并动态生成 API 定义(文件?),SwaggerUI 格式的 API 文档应该在相对的“/swagger”路径中可用。

获取相对的“/swagger”路径会产生“400 Bad Request”错误。

Requesting the Swagger documentation produces '400 Bad Request' error

问:SwaggerGen 会生成自己的“swagger.json”文件吗?如果是,它会在哪里创建这个文件?

问:有没有办法告诉 SwaggerUI 在哪里可以找到并显示我手动创建的“swagger.json”API 定义文件?

谢谢!

最佳答案

您可以使用 url 告诉任何 Swagger-UI 在哪里可以找到文件。范围:

  • http://petstore.swagger.io/?url=https://raw.githubusercontent.com/heldersepu/hs-scripts/master/swagger/swagger.json
  • http://swagger-net-test.azurewebsites.net/swagger/ui/index?url=https://petstore.swagger.io/v2/swagger.json

  • 这就是您所需要的,如果您已经使用 SwaggerHub 生成了定义,则可以使用任何 Swagger-UI,无需安装 swashbuckle。

    如果您想自己托管 Swagger-UI,只需将 dist 文件夹复制到您的网络服务器:
    https://github.com/swagger-api/swagger-ui/tree/master/dist

    关于asp.net-core-mvc - 如何使用 Swashbuckle 的 SwaggerUI 来显示静态 swagger.json 文件而不是 SwaggerGen 的动态创建的定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57099142/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com