我正在创建我的第一个 ASP.NET Web API。我正在尝试遵循标准的 REST URL。我的 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 }
);
使用此模型,如果我的 URL 是 ../api/records?SearchCriteria 但它不是我上面提到的 URL 设计,它可以正常工作。我知道我需要做更多的阅读,但到目前为止还没有找到正确的文章。需要您就如何实现我的 URL 以及这 2 个文件需要进行哪些更改提出建议。或者,我在这里缺少一些其他配置吗?提前致谢。