Web API Lowercase Route
This looks like it does what you need
public class RouteConfig{ public static void RegisterRoutes(RouteCollection routes) { routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional }, constraints: new { url = new LowercaseRouteConstraint() } ); }}public class LowercaseRouteConstraint : IRouteConstraint{ public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) { var path = httpContext.Request.Url.AbsolutePath; return path.Equals(path.ToLowerInvariant(), StringComparison.InvariantCulture); }}
I found this at https://gist.github.com/benfoster/3274578#file-gistfile1-cs-L4
I have json config like
public class JsonConfig{ public static void Initiliaze(HttpConfiguration config, bool isCamelCase) { var json = config.Formatters.JsonFormatter; json.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.None; json.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; json.SerializerSettings.Formatting = Formatting.None; if (isCamelCase) json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); config.Formatters.Remove(config.Formatters.XmlFormatter); }}
You can call this method in WebApiConfig.cs like
JsonConfig.Initiliaze(config, true);