I'm looking at developing an application in ASP.NET MVC 3 and would like to provide a public API at the same time.

From looking around, there seems to be 2 ways to go about it. Either create an API area and have controllers that return json / xml. Or use action filters and a single front end set of controllers, and have those return json / xml / html depending on the request headers.

I'd like to do the later, but I was wondering how you could go about versioning your api if you went this route?

If you go the first route, you could easily just create a v1 / v2 controller, but if you do the later, how could you version it?

Edit
Report