One of the new things that seems to have passed 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 an 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 using the new RoutingAttribute
types.
One of the really useful ones 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.