0

В чем разница между двумя подходами маршрутизации на основе атрибутов: HttpGet("") и Route("")?

11

Описание проблемы:

Я искал информацию о маршрутизации на основе атрибутов и обнаружил, что существуют два различных атрибута, которые можно использовать: <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 ответ(ов)

0

Route — это метод, не зависящий от конкретного HTTP-метода, тогда как HttpGet явно указывает, что будут приниматься только GET-запросы. В целом, рекомендуется использовать специфические атрибуты, такие как HttpGet, HttpPost и так далее. Атрибут Route следует использовать в основном на контроллерах, чтобы задать базовый путь для всех действий в этом контроллере. Единственным исключением является создание маршрутов для обработки исключений или страниц со статусами кодов. В этом случае стоит использовать Route для этих действий, так как запросы через несколько методов могут потенциально быть направлены туда.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь