Ich erstelle meine erste ASP.NET-Web-API. Ich versuche, den Standard-REST-URLs zu folgen. Meine API würde die Suchergebnisse zurückgeben. Meine URL sollte -Verschachtelte Web-API-Ressource in URL
../api/categories/{categoryId}/subcategories/{subCategoryId}/records?SearchCriteria
Ich plane OData für die Suche und Basic/Digest-Authentifizierung über IIS zu verwenden. Mein Problem ist in den verschachtelten Ressourcen. Bevor ich die Suchergebnisse zurücksende, muss ich prüfen, ob der Benutzer Zugriff auf diese Kategorie und Unterkategorie hat. Jetzt habe ich mein Visual Studio 2012 - MVC4/Web API-Projekt erstellt. Im App_Start-Ordner befinden sich 2 Dateien, die meiner Meinung nach URL und Reihenfolge der Ressourcen sind.
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 }
);
Mit diesem Modell funktioniert es gut, wenn meine URL ../api/records?SearchCriteria ist, aber es ist nicht mein oben angegebenes URL-Design. Ich verstehe, dass ich etwas mehr lesen muss, aber bis jetzt nicht in der Lage, den richtigen Artikel zu finden. Brauchen Sie Ratschläge, wie Sie meine URL erreichen können und welche Änderungen in diesen 2 Dateien erforderlich sind. Oder gibt es eine andere Konfiguration, die mir hier fehlt? Danke im Voraus.