У меня есть поисковый API, над которым я работаю, который должен возвращать результаты поиска в блоке Html (используя стили, определенные клиентом в конце) Я также хотел бы вернуть результаты в Json, для будущих вещей Api, которые мы в конечном итоге будем использовать. В настоящее время маршруты выглядят так:
/api/1/search/json?param1=blah¶m2=blah&etc
/api/1/search/html?param1=blah¶m2=blah&etc
Для справки, здесь приведен шаблон
Мне нравится внешний вид некоторых API, которые я видел, которые возвращают результаты в разных форматах в зависимости от «расширения», которое они имеют в URL, например:
/api/1/search.json?param1=blah¶m2=blah&etc
Однако я не выяснил, как настроить маршрутизацию Mvc в Asp.Net для поддержки этого стиля. Общая маршрутизация в ApiAreaRegistration.cs:
context.MapRoute(
"Api_default",
"Api/1/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional });
Я пробовал следующее, определенное выше общего, которое не работает:
//search api
context.MapRoute(
"searchJson",
"api/1/{controller}.{action}",
new { controller = "SearchController" });
Как настроить маршрутизацию для включения URL в формате .format?