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.
I currently hold the following qualifications (amongst others, I also studied Music Technology and Electronics, for my sins)
- MSc (Passed with distinctions), in Information Technology for E-Commerce
- BSc Hons (1st class) in Computer Science & Artificial Intelligence
Both of these at Sussex University UK.
Award(s)
I am lucky enough to have won a few awards for Zany Crazy code articles over the years
- Microsoft C# MVP 2016
- Codeproject MVP 2016
- Microsoft C# MVP 2015
- Codeproject MVP 2015
- Microsoft C# MVP 2014
- Codeproject MVP 2014
- Microsoft C# MVP 2013
- Codeproject MVP 2013
- Microsoft C# MVP 2012
- Codeproject MVP 2012
- Microsoft C# MVP 2011
- Codeproject MVP 2011
- Microsoft C# MVP 2010
- Codeproject MVP 2010
- Microsoft C# MVP 2009
- Codeproject MVP 2009
- Microsoft C# MVP 2008
- Codeproject MVP 2008
- And numerous codeproject awards which you can see over at my blog