I have a search Api I'm working on that needs to return search results in a block of Html (using styles the client has defined on their end). I would also like to return results in Json, for future Api stuff we'll eventually be using. Currently, the routes look like this:
/api/1/search/json?param1=blah¶m2=blah&etc
/api/1/search/html?param1=blah¶m2=blah&etc
For reference, the pattern here is /{area}/1/{controller}/{action}.
I like the look of some Api's I've seen that return results in different formats depending on the 'extension' they have in the url, a la:
/api/1/search.json?param1=blah¶m2=blah&etc
However, I haven't figured out how to configure Asp.Net's Mvc routing to support this style. The general routing in ApiAreaRegistration.cs is:
context.MapRoute(
"Api_default",
"Api/1/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional });
I have tried the following, defined above the general one, which doesn't work:
//search api
context.MapRoute(
"searchJson",
"api/1/{controller}.{action}",
new { controller = "SearchController" });
How would I configure routing to enable the .format-style urls?