OData protocal defines $format to support different format: http://www.odata.org/documentation/uri-conventions#FormatSystemQueryOption
User can use following URL to change the return format to json instead of setting Accept header: http://localhost/api/Values?$format=json
However, QueryableAttribute in Web Api OData package doesn't support $format.
ASP.NET Web Api provides such extensibility that you can change the default content negotiation by adding mappings to any part of the a request. So what we just need to do is to add following code to WebApiConfig.cs:
In order to support QueryableAttribute together with $format, you also need to extend it to make it silent on unsupported query options. Following code do the trick:
BTW, at current point, the ValidateQuery method is not virtual in public nuget pacakge. You can use it nighly build feed to install the nightly build: http://www.myget.org/F/aspnetwebstacknightly/