У меня есть этот код контроллера в стандарте. NET Основной проект WebApi:
[ApiController]
[Route("[controller]")]
public class MessageController : ControllerBase
{
[HttpGet]
public string GetByTransactionId([FromRoute(Name = "transactionId")] string transactionId)
{
return "transactionId";
}
[HttpGet]
public string GetByNumber([FromRoute(Name = "number")] string number)
{
return "number";
}
}
И я хочу получить доступ к API, например:
- https://localhost : 44316 / Сообщение? TransactionId = ab c
- https://localhost: 44316 / Сообщение? Number = foobar
При доступе к URL-адресу конечной точки, например: https://localhost: 44316 / Сообщение? TransactionId = ab c, я получаю сообщение об ошибке:
AmbiguousMatchException: The request matched multiple endpoints. Matches:
Server.Controllers.MessageController.GetByTransactionId (Server)
Server.Controllers.MessageController.GetByNumber (Server)
Можно ли решить эту проблему, используя правильные атрибуты с [HttpGet]
или [Route]
?