如何避免显示我的方法的两个版本的帮助页面?
如您所见,我为 设置了自定义路由/api/property/search/{finnId}
,但我不希望使用查询参数的路由显示在帮助页面中。有什么办法可以解决这个问题?我正在使用 ASP.NET Fall 2012 BUILD preview 中的内置帮助页面。
顺便说一句,不要担心它说的事实POST
,我已经把它切换到了GET
,但我得到了相同的结果。
如何避免显示我的方法的两个版本的帮助页面?
如您所见,我为 设置了自定义路由/api/property/search/{finnId}
,但我不希望使用查询参数的路由显示在帮助页面中。有什么办法可以解决这个问题?我正在使用 ASP.NET Fall 2012 BUILD preview 中的内置帮助页面。
顺便说一句,不要担心它说的事实POST
,我已经把它切换到了GET
,但我得到了相同的结果。
如果您只是想在“帮助”页面中隐藏此路线,而不是在应用程序中实际禁用它,您可以随时调整显示模板中的逻辑。
您可以通过添加逻辑来修改“ ...\DisplayTemplates\ApiGroup.cshtml ”文件,以查看将要呈现的每个 api,并根据 URL 中是否存在查询字符串来决定是否要包含它.
不过,需要注意的重要一点是,这不会禁用路由。您只是将其隐藏在此帮助页面上。如果要禁用路由,我认为您需要定义自己的自定义路由。
由于 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);
}