Обработка нескольких конечных точек в веб-API .NET Core 3.1 с помощью параметров запроса ⇐ C#
Обработка нескольких конечных точек в веб-API .NET Core 3.1 с помощью параметров запроса
Я переношу контроллеры с .NET Framework на .NET Core и хочу, чтобы они были совместимы с вызовами API из предыдущей версии. У меня проблема с обработкой нескольких маршрутов из параметров запроса.
Мой пример контроллера:
[Маршрут("/api/[контроллер]")] [Маршрут("/api/[контроллер]/[действие]")] открытый класс StaticFileController: ControllerBase { [HttpGet("{имя}")] public HttpResponseMessage GetByName (имя строки) { } [HttpGet] общедоступный IActionResult Get() { } } Вызов api/StaticFile?name=someFunnyName приведет меня к действию Get() вместо ожидаемого GetByName(string name ).
Чего я хочу достичь:
[*]Вызов GET api/StaticFile -> переходит к действию Get() [*]Вызов GET api/StaticFile?name=someFunnyName -> переходит к действию GetByName()
Мой app.UseEndpoints() из Startup.cs содержит только эти строки:
endpoints.MapControllers(); конечные точки.MapDefaultControllerRoute(); Если я использую [HttpGet] везде и добавляю (имя строки [FromQuery]), я получаю AmbigiousMatchException: запрос соответствует нескольким конечным точкам
Спасибо, что нашли время помочь мне (и, возможно, другим)
Я переношу контроллеры с .NET Framework на .NET Core и хочу, чтобы они были совместимы с вызовами API из предыдущей версии. У меня проблема с обработкой нескольких маршрутов из параметров запроса.
Мой пример контроллера:
[Маршрут("/api/[контроллер]")] [Маршрут("/api/[контроллер]/[действие]")] открытый класс StaticFileController: ControllerBase { [HttpGet("{имя}")] public HttpResponseMessage GetByName (имя строки) { } [HttpGet] общедоступный IActionResult Get() { } } Вызов api/StaticFile?name=someFunnyName приведет меня к действию Get() вместо ожидаемого GetByName(string name ).
Чего я хочу достичь:
[*]Вызов GET api/StaticFile -> переходит к действию Get() [*]Вызов GET api/StaticFile?name=someFunnyName -> переходит к действию GetByName()
Мой app.UseEndpoints() из Startup.cs содержит только эти строки:
endpoints.MapControllers(); конечные точки.MapDefaultControllerRoute(); Если я использую [HttpGet] везде и добавляю (имя строки [FromQuery]), я получаю AmbigiousMatchException: запрос соответствует нескольким конечным точкам
Спасибо, что нашли время помочь мне (и, возможно, другим)
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как использовать один класс dto в .net 8.0 вместо нескольких dto для разных конечных точек
Anonymous » » в форуме C# - 0 Ответы
- 36 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как использовать один класс DTO в .NET 8.0 вместо нескольких DTO для разных конечных точек
Anonymous » » в форуме C# - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как использовать один класс DTO в .NET 8.0 вместо нескольких DTO для разных конечных точек
Anonymous » » в форуме C# - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-