Как сделать собственный маршрут .NET Web API? - PullRequest
0 голосов
/ 10 марта 2019

Хорошо, когда мы впервые запускаем проект веб-API, мы обычно имеем это в WebApiConfig

config.Routes.MapHttpRoute(
                "DefaultApi",
                "api/{controller}/{id}",
                new { id = RouteParameter.Optional }
            );

Тогда что если я захочу создать новый маршрут, кроме использования {controller}, так что это будет что-то вроде этого

config.Routes.MapHttpRoute(
                "DefaultApi",
                "api/queries/{query}/{id}",
                new { id = RouteParameter.Optional }
            );

И у меня есть свой собственный класс для получения списка имен, подобного этому:

public class GetNameListQuery
    {
        [HttpGet]
        public IEnumerable<String> GetNames(){ 
              return new String[] { "John" , "Adams" };
        }
    }

Так что, когда я запускаю URI «mylocalhost / api / query / GetNameList», я получаю имена «Джон» и «Адамс». Я новичок в .NET и не уверен, что есть какие-то способы сделать что-то подобное. Ценю твою помощь. Спасибо !!

1 Ответ

0 голосов
/ 10 марта 2019

в конфигурации вашего маршрута:

routes.MapRoute(
      "DefaultApi2",
      "api/queries/{action}",
      new { controller = "Query" }
);

затем создайте контроллер Query

public class QueryController : ApiController
{
    [HttpGet]
    public IEnumerable<String> GetNames()
    {
        return new String[] { "John", "Adams" };
    }
}

доступ к этому маршруту: http://localhost/api/query/GetNameList

...