David_Wimbley
Способ работы маршрутов web API заключается в том, что вам нужно добавить
config.MapHttpAttributeRoutes();
В ваш файл WebApiConfig. cs, если его там нет.
Тогда что касается маршрута, то у вас есть два атрибута, которые нужно иметь в виду: RoutePrefix и Route.
Таким образом, примером этого может быть
[RoutePrefix("api/people")]
public class PeopleController : Controller
{
[Route("names")]
public IHttpActionResult GetNames()
{
var names = //do a DB select operation or something
return Ok(names);
}
}
Этот пример позволяет использовать url-адрес http://localhost/api/people/names вместо более уродливой версии http://localhost/people/getnames.
Теперь для действий с параметрами в маршрутах web api вы должны сделать что-то вроде
[RoutePrefix("api/people")]
public class PeopleController : Controller
{
[Route("names/{personId}")]
public IHttpActionResult GetNameForPersion(int personId)
{
var names = //do a DB select operation or something
return Ok(names);
}
}
Это позволит вам добавить идентификатор, представляющий человека, в URL-адрес. Имейте в виду, что имя параметра в вашем действии должно совпадать с именем, используемым в маршруте. В противном случае, я думаю, вы получите ошибку 404.
Таким образом, этот url-адрес будет выглядеть примерно так http://localhost/api/people/names/1
Если у вас есть еще какие-то вопросы, вот хорошая ссылка:
Маршрутизация атрибутов в ASP.NET Web API 2 / The ASP.NET сайт[
^]