HTTP-атрибут такой же, как и для маршрутизации - ASP.Net Core API? - PullRequest
0 голосов
/ 23 мая 2018

Я делаю ASP.net core 2.0 Web API и в моем контроллере есть метод с именем

[HttpPost("Create")]
public void Create()
{
    //  var d = employee;
}

Действует ли HttpPost как тот же атрибут [Route], или мне нужны оба

1 Ответ

0 голосов
/ 23 мая 2018

Для Asp.Net Core Web API вам не нужны оба.

Действует так же, как Route, и является рекомендуемым подходом.При использовании MVC с представлениями вы используете вместе Route и Http{Verb}.

Состояния документации ...

При создании API REST редко требуется использовать[Route(...)] о методе действия.Лучше использовать более конкретный Http*Verb*Attributes, чтобы быть точным в том, что поддерживает ваш API.Ожидается, что клиенты API REST будут знать, какие пути и глаголы HTTP соответствуют определенным логическим операциям.

Ссылка Маршрутизация к действиям контроллера в ASP.NET Core

Я также посоветовал бы, чтобы ваши действия возвращали IActionResult, чтобы позволить правильному HTTP-глаголу быть возвращенным из действия.

[HttpPost("Create")]
public IActionResult Create() {
    //  var d = employee;
    return Ok();
}

void действия всегда возвращают 200 OK, если не выдается исключение.Это ограничивает возможный ответ от действия.

...