我找不到一種基於WebApi爲移動服務項目刪除默認路徑路徑的方法。它生成我不想提供給客戶端應用程序的路由,例如「/ api/{controller}/{id}」和「/ tables/{controller}/{id}」。取而代之,我正在映射這樣的路由 - 「/ api_v1/{controller}/{id}」,並且希望將其作爲訪問數據的一條可能路線。如何從WebApi中刪除默認路由?
這裏是不起作用的代碼:
public static class WebApiConfig
{
public static void Register()
{
// Use this class to set configuration options for your mobile service
ConfigOptions options = new ConfigOptions();
options.LoginProviders.Add(typeof(CustomLoginProvider));
// Use this class to set WebAPI configuration options
HttpConfiguration config = ServiceConfig.Initialize(new ConfigBuilder(options));
// add login provider
config.SetIsHosted(true);
//foreach (var route in config.Routes)
// Console.WriteLine(route.ToString());
config.Routes.MapHttpRoute(
name: "api_v1",
routeTemplate: "api_v1/{controller}/{id}",
defaults: new { id = RouteParameter.Optional, });
//Create the object of particular router
string result = "";
foreach (var r in config.Routes)
result += r.ToString();
// This does not remove any route.
// Also there is no 'Name' property for Route to know exact match
config.Routes.Remove("api");
}
}
更新: 我叫config.Routes.Remove(「」),對每個可能的路線我已經和它消除只有一個名字「表」。但是「api」路線仍然存在。
ServiceConfig.Config.Routes.Remove("DefaultApi"); // not removed any
ServiceConfig.Config.Routes.Remove("api"); // not removed any route
ServiceConfig.Config.Routes.Remove("tables"); // this works!
如何刪除默認'API'路線?
沒有什麼了產生的WebAPI「默認」路由(尤其是與「表」前綴)。你的代碼(或者你使用的任何庫)應該有一些東西來設置它們。 –
從「Azure Mobile Service」模板創建的項目以及它生成15個默認路由的項目,我在debbuger中看到。 –
你有沒有試過在'ServiceConfig'中尋找? –