Мне нужно сделать ASP.NET Core, Web API
, который поддерживает несколько глаголов HttpGet
, с той лишь разницей, что это строка запроса, но кажется, что строки запроса не могут быть частью шаблона маршрута - это правда?
Шаблоны маршрутов очень похожи, фактически они отличаются только строкой запроса.
[Authorize]
public class SymbolsController : Controller
{
[
HttpGet,
Route("api/symbols")
]
public Task<IEnumerable<Symbol>> Symbols([FromServices] ISymbolService symbolService)
{
return symbolService.GetSymbolsAsync();
}
[
HttpGet,
Route("api/symbols?{childrenOf=id}")
]
public Task<IEnumerable<Symbol>> ValidChildren(
[FromQuery] Guid id,
[FromServices] ISymbolService symbolService)
{
return symbolService.GetValidChildrenAsync(id);
}
}
Это вызывает исключение, поскольку ?
не является допустимым символом в шаблоне маршрута. Как я могу этого добиться?