【问题标题】:Configure Swagger to work with DotNetNuke (DNN)配置 Swagger 以使用 DotNetNuke (DNN)
【发布时间】:2020-08-09 18:31:49
【问题描述】:

我正在尝试将 Swagger 与我在 DotNetNuke 中创建的 API 一起使用,但我无法让它工作。

我已经安装了 Swashbuckle 及其所有依赖项,但我无法访问 swagger ui 端点。我相信 DotNetNuke 搞乱了路由,这就是问题所在。

我有一个这样实现的 RouteMapper:

    public class RouteMapper : IServiceRouteMapper
    {
        public void RegisterRoutes(IMapRoute mapRouteManager)
        {
            mapRouteManager.MapHttpRoute("MyAPI", "default", "{controller}/{action}", new[] { "MyAPI.Controllers" });
        }
    }

关于如何解决此问题以便能够访问 swagger 的端点的任何想法?

【问题讨论】:

  • 嗨@Andrei,您使用的是哪个版本的 DNN?
  • 你好克里斯,我正在使用 DNN 9
  • @AndreiCurta 你最后让这个工作了吗?
  • @ParasDaryanani 我已经尝试了这篇文章中的建议,但不幸的是我没能大摇大摆地与 dnn 合作

标签: .net swagger dotnetnuke swashbuckle


【解决方案1】:

在 SEO > URL Management > Expressions 下的 DNN 平台中有一个设置 Ignore URL Regular Expression 这是一个正则表达式,它告诉友好 URL 系统完全忽略该模式。您需要为此添加 Swagger。

注意:这通常不适用于 DNN,因此您的结果可能有点“不确定”

【讨论】:

  • 感谢您的回答!我已尝试按照您的建议进行操作,但没有奏效。我已将“不使用友好 URL 正则表达式”下的正则表达式更改为 /Rss\.aspx|/api/MyAPI/swagger。我还使用了站点设置中提供的工具来检查 url 是否会被重写并且它显示它不会。我假设招摇应该在http://dnndev.me/API/MyAPI/swagger
  • 您实际上需要将其添加到“忽略 URL 正则表达式”中才能正常工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
  • 2018-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多