Ho un'app ASP.NET MVC 4. Voglio utilizzare la nuova funzionalità API Web per scopi di apprendimento. Voglio imparare come esporre lo stesso endpoint, ma fornirne diverse versioni. In altre parole, voglio esporre endpoint come la seguente:Esecuzione di azioni API Web in ASP.NET MVC 4
http://mysite/1.0/Products/1
http://mysite/2.0/Products/1
Nel tentativo di fare questo, ho aggiunto una directory "Api" all'interno della directory di default "controllori". All'interno della directory "Api", ho altre due directory: "Versione1-0" e "Versione2-0". Ciascuna di queste directory ha un ApiController denominato "ProductsController".
ho cercato di esporre gli endpoint aggiungendo la seguente definizione della rotta nel mio file WebApiConfig.cs:
config.Routes.MapHttpRoute(
name: "1-0Api",
routeTemplate: "api/1.0/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Purtroppo, non riesco a capire come esporre le azioni tramite gli URL che ho elencato sopra. Che cosa sto facendo di sbagliato? Grazie!
Attualmente, ho solo 1 controller (ProductsV1Controller) e non riesco ad accedere a quell'endpoint. Che cosa sto facendo di sbagliato? Non ci sono stati altri cambiamenti nel progetto. Ho avviato letteralmente un nuovo progetto ASP.NET MVC 4 e volevo aggiungere un controller con versione. –
Diverse cose potrebbero essere sbagliate. Il controller potrebbe non essere una classe pubblica, il controller potrebbe non derivare da ApiController o qualcos'altro. Qual è la risposta che si ottiene dal server su una macchina locale? –
Il mio controller è una classe pubblica. Il controller deriva da ApiContoller. Sulla mia macchina locale, ricevo un 404. È la cosa più strana. –