我正在创建我的第一个ASP.NET Web API。我正在尝试遵循标准的REST URL。我的API将返回搜索结果记录。我的URL应该是 -URL中的Web API嵌套资源
../api/categories/{categoryId}/subcategories/{subCategoryId}/records?SearchCriteria
我打算使用OData的搜索和基本/摘要式身份验证在IIS。我的问题是嵌套的资源。在我返回搜索结果之前,我需要检查用户是否有权访问此类别和子类别。 现在我创建了我的Visual Studio 2012 - MVC4/Web API项目以开始。在App_Start文件夹中,我认为有2个文件是URL和资源相关的顺序。
1.RouteConfig.cs
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
2.WebApiConfig.cs
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
在这种模式下,它工作正常,如果我的网址是../api/records?SearchCriteria但不是我上面提到的URL设计。我明白我不得不做更多的阅读,但至今无法找到正确的文章。需要您提供关于如何实现我的URL以及这两个文件需要哪些更改的建议。或者,我还有其他一些配置在这里吗?提前致谢。