【问题标题】:Fetch errorundefined swagger/v1/swagger.json .Net Core 3.1 API获取错误undefined swagger/v1/swagger.json .Net Core 3.1 API
【发布时间】:2021-05-31 09:10:31
【问题描述】:

获取错误 undefined swagger/v1/swagger.json .Net Core 3.1 API

我几乎尝试了所有方法,谁能帮我解决这个问题。

提前致谢!

【问题讨论】:

    标签: asp.net-core .net-core swagger asp.net-core-webapi swagger-ui


    【解决方案1】:

    您应该在swagger 之前添加符号/

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

    【讨论】:

    • 已尝试但仍然遇到同样的问题。
    • 嗨@Sheriff,这可能是因为你的项目有一些内部错误,这些错误在招摇中不起作用。如果你的项目不复杂,分享一个 github repo 会很有帮助。如果你的项目很复杂,你当您的浏览器显示错误时,需要通过检查 Visual Studio 中的output 面板进行故障排除。
    • 项目没有报错,成功构建并运行。
    • @Sheriff 我同意@Rena 的观点,您可能在未展示的部分存在问题。我建议创建一个新的、空的 WebApi 项目 dotnet new webapi,添加到该项目 swagger UI 并逐步将您的逻辑移动到该新项目中,控制 swagger UI 工作的每个步骤。
    • @Sheriff,当您运行应用程序以显示 swagger 文档时,请查看您的output 面板。该面板将显示详细的错误消息。
    【解决方案2】:

    当您的控制器出现问题时,通常会显示该错误,请检查控制器的代码,在我的情况下,我忘记将 [HttpDelete("{id}")] 放入方法中,这就是我给出该错误的原因。在调试控制台中它应该会向您显示错误,只需查找它,因为它是相当多的文本。

    【讨论】:

      【解决方案3】:

      如果有 HttpPost,那么您需要确保为它命名。

      [HttpPost(nameof(UpdateContactDetails))]
      

      不只是

      [HttpPost]
      

      【讨论】:

        【解决方案4】:

        按照 Carlos Javier Bazan 的建议查看输出控制台。 在我的情况下,这是控制器中的错误:Swashbuckle.AspNetCore.SwaggerGen.SwaggerGeneratorException:不明确的 HTTP 操作方法 - WebsiteR3.Controllers.WHhandlerController.UpdPaymentStatus

        【讨论】:

          【解决方案5】:

          当有多个端点具有相同的路由 URL 时,Swagger 可能会引发此错误。只需尝试解析所有控制器中的操作路由 URL,并使每个 URL 唯一。

          【讨论】:

            【解决方案6】:

            请检查以上所有内容,因为它可能是其中任何一个。
            但请务必检查该路线是否独一无二。就我而言

            [Route("api")]
            [ApiController]
            public class MyApiForFooAbcCalcController : ControllerBase
            {
               // ...
            }
            

            路由“api”已在项目的第二个控制器类中定义,导致冲突。尽管两个类中的方法都有不同的名称(以及 HttpGet、HttpPost 等的属性),但冲突仍然存在并导致了运行时错误。请注意,它编译时没有任何错误。

            要解决,请为每个类添加更具体的路由,例如:

            [Route("api/forFooAbcCalc")]
            

            另一个类似

            [Route("api/forFooXYZCalc")]
            

            然后它将再次编译并运行!

            【讨论】:

              猜你喜欢
              • 2022-01-25
              • 1970-01-01
              • 2019-12-23
              • 1970-01-01
              • 2020-06-06
              • 2021-06-03
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多