8

我正在尝试使用 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 发现可能存在问题。有人设置成功了吗?

大摇大摆的项目

4

3 回答 3

12

时间流逝,现在 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 doco - http://domain:port/swagger/ui/index.html

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

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

如果您也愿意,您也可以设置自己的代码生成服务器(https://github.com/swagger-api/swagger-codegen),但是我利用了现有的在线生成器。在线编辑器也有完整的模型和关系定义,至少在我使用 EF7 完全定义模型的情况下(我知道,我知道......但它比 <= EF6 好得多,而且 ServiceStack 还不支持 CoreCLR) . 根据您项目的大小,这可以为您节省几个小时到几周的工作记录,而且它会随着您编写更多代码而动态更新。你也可以用它来测试你的端点,但我还是更喜欢 PostMan。

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

MrSheepUK 的大事

高温高压

于 2015-11-22T23:55:46.697 回答
2

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

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

于 2015-05-05T16:10:21.007 回答
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/

于 2015-06-19T09:22:18.327 回答