Tôi đang tạo API web ASP.NET đầu tiên của mình. Tôi đang cố gắng tuân theo các URL REST chuẩn. API của tôi sẽ trả về các bản ghi kết quả tìm kiếm. URL của tôi nên -Tài nguyên lồng nhau trên Web API trong URL
../api/categories/{categoryId}/subcategories/{subCategoryId}/records?SearchCriteria
Tôi đang lên kế hoạch để sử dụng OData để tìm kiếm và Basic/Digest Authentication trên IIS. Vấn đề của tôi là trong các tài nguyên lồng nhau. Trước khi tôi trả lại kết quả tìm kiếm, tôi cần kiểm tra xem người dùng có quyền truy cập vào danh mục này và danh mục phụ hay không. Bây giờ tôi đã tạo dự án Visual Studio 2012 - MVC4/Web API của mình để bắt đầu. Trong thư mục App_Start, có 2 tệp mà tôi tin là URL và thứ tự tài nguyên có liên quan.
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 }
);
Với mô hình này, nó hoạt động tốt nếu URL của tôi là ../api/records?SearchCriteria nhưng nó là không phải thiết kế URL của tôi được đề cập ở trên. Tôi hiểu rằng tôi phải đọc ít hơn nhưng cho đến nay vẫn không thể tìm được bài viết chính xác. Cần lời khuyên của bạn về cách đạt được URL của tôi và những thay đổi nào là cần thiết trong 2 tệp này. Ngoài ra, có một số cấu hình khác mà tôi đang thiếu ở đây không? Cảm ơn trước.