【问题标题】:Swagger w/ ASP.NET v5 Azure Api App带有 ASP.NET v5 Azure Api 应用程序的 Swagger
【发布时间】:2015-07-15 09:06:21
【问题描述】:

我正在尝试使用 Swagger + Swashbuckle 设置 Api 应用程序 (Azure),正如 Scott Hanselman 在 //Build 会议上所展示的那样:http://channel9.msdn.com/Events/Build/2015/2-628

我已安装(使用 NuGet)包 Swagger.Api 和 Swashbuckle.Core。它没有添加任何我期望的控制器或设置来拥有一个招摇页面。当我导航到 {baseUrl}\swagger 时,我收到 404 错误。

我认为由于它有一个 UI,除了 Api 应用程序之外,它还需要一个 Web 应用程序,但我重新观看了演示,Scott 明确表示您可以将 Swagger + Swashbuckle 添加到任何 Api 应用程序。在第二个应用程序中,虽然我认为 Api 发现可能存在问题。有人设置成功了吗?

【问题讨论】:

    标签: asp.net azure swagger swashbuckle


    【解决方案1】:

    您做了所有正确的步骤,但不幸的是,对于 ASP.NET 5,Swashbuckle 还不能工作。

    你可以得到啊!这是具有 ASP.NET v6 支持here 的 Swashbuckle 的下一个版本。这应该使一切正常。

    【讨论】:

    • 无法让它工作(甚至运行他们的源示例)。 BasicAPI 示例只是转到 index.html 并显示一个用于输入 url 和 apikey 的框。
    • 这是 Swashbuckle 主项目的 6.0 beta 阶段。
    【解决方案2】:

    这个答案现在已经过时了。查看其他答案。

    有一篇很好的博文描述了您遇到的问题:https://alexanderzeitler.com/articles/Deploying-a-ASP-NET-MVC-6-API-as-Azure-API-App-in-Azure-App-Services/

    这描述了如何添加 Ahoy!打包到 ASP.NET v6 Web Api 项目并将其作为 API 应用程序添加到 Azure。

    这是另一个来源:http://devmeetsbi.ghost.io/help-and-test-page-for-asp-net-web-api-asp-net-5-and-mvc-6/

    【讨论】:

      【解决方案3】:

      时间流逝,现在 Swashbuckle 适用于 vNext(对我来说是 beta8,可能还有其他版本)- 感谢团队和贡献者!

      在 project.json 中添加包:

          "Swashbuckle": "6.0.0-*",
      

      在ConfigureServices()的startup.cs中:

              services.AddSwaggerGen();
              services.ConfigureSwaggerDocument(options =>
              {
                  options.SingleApiVersion(new Info
                  {
                      Version = "v1",
                      Title = "My Super API",
                      Description = "A Super API using Swagger and Swashbuckle",
                      TermsOfService = ""
                  });
      
              });
              services.ConfigureSwaggerSchema(options =>{
                  options.DescribeAllEnumsAsStrings = true;
              });
      

      在configure()的startup.cs中:

              app.UseSwaggerGen();
              app.UseSwaggerUi();
      

      现在您可以访问您的 API 文档 - http://domain:port/swagger/ui/index.html

      访问您的 Swagger 定义 - http://domain:port/swagger/v1/swagger.json

      然后假设您至少有一个面向互联网的 dev/uat/staging/prod 环境,获取定义 URL,然后执行 File-> Import URI at http://editor.swagger.io/ - 现在您也有大约 20 个客户端的代码生成 :)

      如果您也愿意,您也可以设置自己的代码生成服务器 (https://github.com/swagger-api/swagger-codegen),但是我利用了现有的在线生成器。在线编辑器也有完整的模型和关系定义,至少在我使用 EF7 完全定义模型的情况下(我知道,我知道......但它比

      https://github.com/mrsheepuk/ASPNETSelfCreatedTokenAuthExample/tree/beta8的完整示例项目

      MrSheepUK 大功告成

      HTH

      【讨论】:

        猜你喜欢
        • 2018-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-29
        • 1970-01-01
        • 2018-10-11
        • 2012-08-27
        • 1970-01-01
        相关资源
        最近更新 更多