3

如何避免显示我的方法的两个版本的帮助页面?

如您所见,我为 设置了自定义路由/api/property/search/{finnId},但我不希望使用查询参数的路由显示在帮助页面中。有什么办法可以解决这个问题?我正在使用 ASP.NET Fall 2012 BUILD preview 中的内置帮助页面。

顺便说一句,不要担心它说的事实POST,我已经把它切换到了GET,但我得到了相同的结果。

4

2 回答 2

4

如果您只是想在“帮助”页面中隐藏此路线,而不是在应用程序中实际禁用它,您可以随时调整显示模板中的逻辑。

您可以通过添加逻辑来修改“ ...\DisplayTemplates\ApiGroup.cshtml ”文件,以查看将要呈现的每个 api,并根据 URL 中是否存在查询字符串来决定是否要包含它.

不过,需要注意的重要一点是,这不会禁用路由。您只是将其隐藏在此帮助页面上。如果要禁用路由,我认为您需要定义自己的自定义路由。

于 2012-11-15T23:30:29.743 回答
0

由于 Api 的路由请求组合不同,帮助页面默认显示所有组合。如果我们只是想在 UI 上隐藏显示,我们可以从 HelpController.cs 中的集合中删除项目

//helpcontroller.cs 
        public ActionResult Index()
        {
            ViewBag.DocumentationProvider = Configuration.Services.GetDocumentationProvider();
            //return View(Configuration.Services.GetApiExplorer().ApiDescriptions); 
            var apiExplorer = Configuration.Services.GetApiExplorer();
            for (int i = apiExplorer.ApiDescriptions.Count - 1; i >= 0; i--)
            {
                if (apiExplorer.ApiDescriptions[i].RelativePath.Contains("?")) { apiExplorer.ApiDescriptions.RemoveAt(i); }
            }
            return View(apiExplorer.ApiDescriptions);
        }

于 2015-05-12T02:42:11.300 回答