我们目前正在尝试为我们的产品编写 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 文档)
我现在附上了一个测试项目。请点击以下链接:
问候,
纳斯