Múltiples GET en la API web que llaman a la acción incorrecta
tengo unWeb API
, que se parece a lo siguiente ...
public class LeaguesController : ApiController
{
//api/Leagues/active/1
//api/Leagues/complete/1
//api/Leagues/both/1
[GET("api/Leagues/{type}/{id}")]
public List<Competition> Get([FromUri]int id,
[FromUri]CompetitionManager.MiniLeagueType type)
{
return CompetitionManager.GetUsersMiniLeagues(id, true, type);
}
//api/Leagues/GetMiniLeagueTable/3
[GET("api/Leagues/GetMiniLeagueTable/{id}")]
public List<SportTableRow> GetMiniLeagueTable([FromUri]int id)
{
return SportManager.GetMiniLeagueTable("", id).TableRows;
}
}
Cuando llamo al primer método.Get
, esto funciona bien. Cuando uso Fiddler o Chrome REST Client para llamar al segundo métodoGetMiniLeagueTable
, Estoy teniendo el siguiente error:
{Mensaje: "La solicitud no es válida". MessageDetail: "El diccionario de parámetros contiene una entrada nula para el parámetro 'tipo' del tipo no anulable 'CompetitionManager + MiniLeagueType' para el método 'System.Collections.Generic.List`1 [Competition] Get (Int32, MiniLeagueType)' in 'LeaguesController '. Un parámetro opcional debe ser un tipo de referencia, un tipo que pueda contener nulos, o ser declarado como un parámetro opcional ". }
estoy usandoAttributeRouting
Para decorar los métodos, pero esto no parece funcionar. Estaba funcionando bien antes de presentarMiniLeagueType
.
¿Alguien se ha topado con este problema o me puede indicar dónde me equivoco?