У меня есть действие с двумя обязательными и несколькими необязательными параметрами:
[HttpGet]
public IHttpActionResult GetUsers(DateTime dateFrom, DateTime dateTo, string zipcode, int? countryId)
{
using (DataHandler handler = new DataHandler())
return Ok(handler.GetUsers(dateFrom, dateTo).ToList());
}
Мне нужен такой URL:
/api/getusers/2018-12-03T07:30/2018-12-03T12:45?zipcode=4002&countryId=4
zipcode
и countryId
необязательно и будет добавлено с ?
-thingy.Обязательные параметры dateFrom
и dateTo
будут добавлены с /
, поэтому следующие URL-адреса также могут быть возможны:
/api/getusers/2018-12-03T07:30/2018-12-03T12:45?countryId=4
/api/getusers/2018-12-03T07:30/2018-12-03T12:45?zipcode=4002
/api/getusers/2018-12-03T07:30/2018-12-03T12:45
Я пробовал несколько маршрутов, таких как
[Route("getusers/{dateFrom}/{dateTo}")]
[Route("getusers/{dateFrom}/{dateTo}*")]
[Route("getusers/{dateFrom}/{dateTo}**")]
[Route("getusers/{dateFrom}/{dateTo}?zipcode={zipcode}&countryId={countryId}")]
но ни один из них не работает.Когда я удаляю необязательные параметры, это работает, но мне нужны эти необязательные параметры.
Есть идеи, как это сделать?