Я строю веб-API, где у меня есть один ресурс, который должен иметь 3 метода GET следующим образом:Наличие нескольких GET-методов с несколькими параметрами строки запроса в ASP.NET ядра Web Api
[HttpGet]
[Route("{city}/{streetName}/{streetNumber}/{littera}")]
public IActionResult GetByAddress([FromQuery]string city, [FromQuery]string streetName, [FromQuery]int streetNumber, [FromQuery]string littera)
{
var model = _availabilityService.FindByAddress(city, streetName, streetNumber, littera);
return Ok(model);
}
[HttpGet("{pointId}")]
public IActionResult GetByPointId(string pointId)
{
var model = _availabilityService.FindByPointId(pointId);
return Ok(model);
}
[HttpGet]
[Route("{xCoordinate}/{yCoordinate}")]
public IActionResult GetByCoordinates([FromQuery]decimal xCoordinate, [FromQuery]decimal yCoordinate)
{
var model = _availabilityService.FindByCoordinates(xCoordinate, yCoordinate);
return Ok(model);
}
ГЭТ метод только с одним параметром (pointId) работает отлично, поскольку он не рассматривается как строка запроса, а скорее и id. Однако, по-видимому, остальные 2 метода не распознаются маршрутизатором в ASP.NET.
Я действительно в затруднении здесь и не могу понять, почему это не работает. То, что я смог выработать, состоит в том, что если я удалю один из методов, то другой будет работать нормально.
Любые предложения о том, что я делаю неправильно?
FYI, соответствующий URL: s должен выглядеть следующим образом:
api/1.0/availabilities?city=Metropolis&streetName=Superstreet&streetNumber=1&littera=A
и
/api/1.0/availabilities?xCoordinate=34.3444&yCoordinate=66.3422
спасибо!
Когда вы говорите, что это не работает, что именно вы получаете, называя два других действия? 404? – jpgrassi
@jpgrassi: Я получаю только 500 внутренних ошибок сервера. Я использовал отладчик, и происходит то, что конечная точка никогда не достигнута, поэтому я пришел к выводу, что моя маршрутизация запутана и запутана. :( –