Skip to content

Instantly share code, notes, and snippets.

@adrianvlupu
Last active January 3, 2016 10:49
Show Gist options
  • Save adrianvlupu/8452363 to your computer and use it in GitHub Desktop.
Save adrianvlupu/8452363 to your computer and use it in GitHub Desktop.
Common webapi config
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using Newtonsoft.Json;
using System.Web.Routing;
using System.Net.Http;
namespace WebRoleV2
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
var json = config.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None;
json.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new { id = @"\d+" }
);
config.Routes.MapHttpRoute(
name: "DefaultApiWithGuid",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new { id = @"\b[A-F0-9]{8}(?:-[A-F0-9]{4}){3}-[A-F0-9]{12}\b" }
);
config.Routes.MapHttpRoute(
name: "DefaultApiWithAction",
routeTemplate: "api/{controller}/{action}"
);
config.Routes.MapHttpRoute(
name: "DefaultApiWithLevel",
routeTemplate: "api/{controller}/{action}/{subaction}",
defaults: new { subaction = RouteParameter.Optional },
constraints: new { subaction = @"\w+" }
);
config.Routes.MapHttpRoute(
name: "DefaultApiGet",
routeTemplate: "Api/{controller}",
defaults: new { action = "Get" },
constraints: new { httpMethod = new HttpMethodConstraint("Get") }
);
config.Routes.MapHttpRoute(
name: "DefaultApiPost",
routeTemplate: "Api/{controller}",
defaults: new { action = "Post" },
constraints: new { httpMethod = new HttpMethodConstraint("Post") }
);
config.Routes.MapHttpRoute(
name: "DefaultApiPut",
routeTemplate: "Api/{controller}",
defaults: new { action = "Put" },
constraints: new { httpMethod = new HttpMethodConstraint("Put") }
);
// Uncomment the following line of code to enable query support for actions with an IQueryable or IQueryable<T> return type.
// To avoid processing unexpected or malicious queries, use the validation settings on QueryableAttribute to validate incoming queries.
// For more information, visit http://go.microsoft.com/fwlink/?LinkId=279712.
//config.EnableQuerySupport();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment