One of the new things that seems to have past me by when working with ASP MVC / Web API is Attribute Routing. This is not intended to be a big blog post, but will show you one reason why Attribute Routing is useful.
Imagine we have this Web API controller, which are both valid GET urls
Which one of these would be chosen when hitting the ValuesController url : http://localhost:1744/api/values
In fact if you look at this screen shot you will see it is an issue for Web API routing
Mmmm maybe there is something we can do about this.In fact there is we just need to grab the fairly new Nu-Get package for AttributeRouting.WebApi
Install-Package AttributeRouting.WebApi
After you have run this you will get a automatically created VB|C# file that sets up your WebApi project to allow AttributeRouting. It looks like this
Now that we have the infrastructure in place we can start to use the new RoutingAttribute types.
One of the really useful one is HttpRouteAttribute, which I can use like this:
Which now allows me to do go to this url with ease : http://localhost:1744/api/values/last
Which I personally find much easier than defining loads of custom routings manually. Ok they are still manual, but I do find attributes easier to use.
I have just shown one thing that the new AttributeRouting NuGet package allows. For more information you can see these few posts which are more in depth.