2013-06-28 12 views
5

Ho installato il pacchetto della pagina della Guida dell'API Web di ASP.NET 4 tramite nuget nel progetto Web Api. Per qualche motivo non visualizza tutti gli endpoint api. Ho la documentazione impostata per utilizzare XML. Non so perché questo sta accadendo, ogni aiuto è apprezzato.Il pacchetto della pagina della Guida dell'API Web ASP.NET non riceve tutti gli endpoint dell'API

Ecco un controller esempio

public class ProductController : BaseController 
    { 
     // GET api/Product/Get/5/43324 
     [AcceptVerbs("GET")] 
     public ApiProduct Get(int id, [FromUri]int productId) 
     { 
      //// logic 
     } 
    } 

percorsi

config.Routes.MapHttpRoute(
       name: "api-info", 
       routeTemplate: "api/{controller}/{action}/{id}", 
       defaults: new { id = RouteParameter.Optional, action = RouteParameter.Optional } 
      ); 

Grazie

+0

Potrebbe condividere i controller per i quali non vengono visualizzati? –

+0

ha aggiornato la domanda per mostrare il controller, inoltre non vengono visualizzati tutti gli endpoint per un controller. – tmjam

+0

potresti anche condividere i percorsi? –

risposta

4

ho capito il problema, il problema qui è, in API Web non c'è azione e metodi sono mappato direttamente al verbo e agli argomenti, l'aggiornamento del percorso a questo risolve il problema e tutti i percorsi vengono visualizzati.

config.Routes.MapHttpRoute(
       name: "apsi-info", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 
0

Se la soluzione di cui sopra non risolve il problema - dare un'occhiata e assicurarsi che non sta definendo sono in accordo con le AcceptVerbs e il suo collegamento:

public class ProductController : BaseController 
{ 
    // GET api/Product/Get/5/43324 
    [AcceptVerbs("GET")] 
    [HttpGet] 
    public ApiProduct Get(int id, [FromUri]int productId) 
    { 
     //// logic 
    } 

}

Rimuovere uno di loro e dovrebbe funzionare.

Problemi correlati