Professional ASP.NET MVC 4
by Jon Galloway, Phil Haack, Brad Wilson, K. Scott Allen, Scott Hanselman
Adding Routes to Your Web API
As illustrated in the previous section, Web API's primary route registration is the MapHttpRoute extension method. As is the case for all Web API configuration tasks, the routes for your application are configured off the HttpConfiguration object.
If you peek into the configuration object, you'll discover that the Routes property points to an instance of the HttpRouteCollection class rather than ASP.NET's RouteCollection class. Web API offers several versions of MapHttpRoute that work against the ASP.NET RouteCollection class directly, but such routes will only be usable when web-hosted, so we recommend (and the project templates encourage) that you use the versions of MapHttpRoute on HttpRouteCollection.
The routing system in Web API uses the same routing logic that MVC uses to help determine which URIs should be routed to the application's API controllers, so the concepts you know from MVC apply to Web API, including the route matching patterns, defaults, and constraints. In order to keep Web API from having any hard dependencies on ASP.NET, the team took a copy of the routing code from ASP.NET and ported it to Web API. The way this code behaves changes slightly depending on your hosting environment.
When running in the self-hosted environment, Web API uses its own private copy of the routing code, ported from ASP.NET into Web API. Routes in Web API will look much the same as those in MVC, but with slightly different class names (HttpRoute vs.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access