首页 文章

使用swashbuckle的Web Api文档

提问于
浏览
0

我们目前正在尝试开始为从传统的基于WCF SOAP的服务切换的产品编写WebApi服务 . 我们面临的挑战是如何提供api文档 . 我偶然发现了SwaggerUi / swash扣 . 我们的一个限制是我们不希望在IIS中但在Windows服务中托管WebApi服务 . 我是Web Api的新手,所以我可能会以错误的方式做事 .

因此,对于测试,我在控制台应用程序中托管web api . 我可以使用HttpClient在Web Api上调用Get方法,但是如果我在Web浏览器中键入url,我就无法访问它(这对于自托管的web api来说是正常的吗?) .

所以我安装了Swashbuckle.core nuget包,并在Startup类中包含了以下代码(Owin selfhosted) .

var config = new HttpConfiguration();

        config
            .EnableSwagger(c =>
            {
                c.IncludeXmlComments(GetXmlCommentsPath());
                c.SingleApiVersion("v1", "WebApi");
                c.ResolveConflictingActions(x => x.First());
            })
            .EnableSwaggerUi();

 private static string GetXmlCommentsPath()
    {
        var path = $@"{AppDomain.CurrentDomain.BaseDirectory}\WebApiHost.XML";

        return path;
    }

当我浏览到以下位置时http://localhost:5000/swagger/ui/index我在IE中得到"page cannot be displayed" . 类似于铬 . 在控制台/ Windows服务应用程序中托管WebApi以自动获取文档时,是否需要执行任何特殊操作?

(我已为项目启用了Xml文档)

我现在已经附上了一个测试项目 . 请点击以下链接:

Test project

问候,

纳斯

1 回答

  • 1

    您的问题不适用于正确配置的Swashbuckle . 相反,当浏览器导航到swagger URI时,您的OWin Web应用程序已关闭 . 您的使用声明表示Web应用程序在其结束时关闭 - 远在Chrome打开并导航到招摇路径之前 . 您需要确保Web应用程序仍在运行 - 那么您的路径将是有效的(尽管在您的源代码中,您的url变量中有不同的端口9000和5000) .

相关问题