В чем разница между двумя подходами маршрутизации на основе атрибутов: HttpGet("") и Route("")?
Описание проблемы:
Я искал информацию о маршрутизации на основе атрибутов и обнаружил, что существуют два различных атрибута, которые можно использовать: <code>HttpGet("")</code>
и <code>Route("")</code>
. Однако я не могу найти никаких сведений о том, в чем разница между ними.
Существует ли один из них для поддержки старых версий ASP, или же есть другая причина?
P.S. Мой код может быть не совсем корректным, так как я только начал изучать ASP. Если что-то будет неясно, я постараюсь объяснить.
public class MyController : Controller
{
// ПОДХОД 1
[Route("api/books")]
[HttpGet]
public async List<Book> GetBooks()
{
// Реализация
}
// ПОДХОД 2
[HttpGet("api/books")]
public async List<Book> GetBooks()
{
// Реализация
}
}
1 ответ(ов)
Route
— это метод, не зависящий от конкретного HTTP-метода, тогда как HttpGet
явно указывает, что будут приниматься только GET-запросы. В целом, рекомендуется использовать специфические атрибуты, такие как HttpGet
, HttpPost
и так далее. Атрибут Route
следует использовать в основном на контроллерах, чтобы задать базовый путь для всех действий в этом контроллере. Единственным исключением является создание маршрутов для обработки исключений или страниц со статусами кодов. В этом случае стоит использовать Route
для этих действий, так как запросы через несколько методов могут потенциально быть направлены туда.
Если папка не существует, создайте её
Запрос прерван: Не удалось создать безопасный канал SSL/TLS
Таймаут при использовании Linq-to-SQL
Как запустить модульные тесты на платформе x64?
Использование номера версии веб-приложения из сборки (ASP.NET/C#)