-
Notifications
You must be signed in to change notification settings - Fork 50
/
Copy pathWebApiConfig.cs
58 lines (46 loc) · 1.62 KB
/
WebApiConfig.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System.Web.Http;
using System.Web.Http.Cors;
using System.Net.Http.Headers;
using DataBooster.DbWebApi;
namespace MyDbWebApi
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
EnableCors(config);
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DbWebApi",
routeTemplate: "{sp}/{ext}",
defaults: new { controller = "DbWebApi", action = "DynExecute", ext = RouteParameter.Optional },
constraints: new { ext = @"|json|bson|xml|csv|xlsx|jsonp|razor" }
);
config.Routes.MapHttpRoute(
name: "MiscApi",
routeTemplate: "api/{controller}/{action}"
);
config.RegisterDbWebApi();
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/octet-stream"));
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/plain"));
#if DEBUG
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
#endif
// DbWebApiOptions.DefaultPropertyNamingConvention = PropertyNamingConvention.PascalCase;
DbWebApiAuthorizeAttribute.RegisterWebApiAuthorization<MyDbWebApiAuthorization>();
}
private static void EnableCors(HttpConfiguration config)
{
if (!string.IsNullOrEmpty(ConfigHelper.CorsOrigins))
{
var cors = new EnableCorsAttribute(ConfigHelper.CorsOrigins, "*", "*");
cors.SupportsCredentials = ConfigHelper.SupportsCredentials;
if (ConfigHelper.PreflightMaxAge > 0L)
cors.PreflightMaxAge = ConfigHelper.PreflightMaxAge;
config.EnableCors(cors);
}
}
}
}