【发布时间】:2016-03-22 10:50:01
【问题描述】:
我们目前正在尝试为我们的产品编写 WebApi 服务,从传统的基于 WCF SOAP 的服务切换。我们面临的挑战是如何提供 api 文档。我遇到了 SwaggerUi/swash 扣。 我们的一个限制是我们不想在 IIS 中托管 WebApi 服务,而是在 Windows 服务中托管。我是 Web Api 的新手,所以我可能会以错误的方式做事。
因此,为了进行测试,我将 Web api 托管在控制台应用程序中。我可以使用 HttpClient 调用 Web Api 上的 Get 方法,但如果我在 Web 浏览器中键入 url,我将无法访问相同的方法(这对于自托管 Web api 来说是否正常?)。
所以我安装了 Swashbuckle.core nuget 包,并将以下代码包含在 Startup 类(Owin 自托管)中。
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 中得到“页面无法显示”。与铬类似。 在控制台/Windows 服务应用程序中托管 WebApi 以自动获取文档时,有什么特别需要做的吗?
(我已经为项目启用了 Xml 文档)
我现在附上了一个测试项目。请点击以下链接:
问候,
纳斯
【问题讨论】:
标签: asp.net-web-api2 swagger-ui self-hosting swashbuckle