Web API Lowercase Route Web API Lowercase Route asp.net asp.net

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);