Use the same baseclasses as normal MVC Controllers
The current DataController and API Controller don't implement IController or Controller from the System.Web.MVC namespace making it hard to integrate these two.
For example, you can't handle a request for a web api controller in your own controller factory pushing some dependencies in.
It would be nice to have these 2 side by side in the same project.
ASP.NET Web API has a different base class because it is built on a new HTTP programming model: HttpRequestMessage and HttpResponseMessage. This decouples ASP.NET Web API from ASP.NET and allows web APIs to be hosted outside of ASP.NET (ex in your own process).
Ryan Riley commented
What do you mean about having them side-by-side? The initial project layout shows these two types co-existing. Do you mean having Web API actions next to MVC actions in the same controller?
Brad Wilson commented
I'm working on a blog post illustrating the differences, and why we chose to go down the path we did. Thanks for your feedback!