WebApiConfig.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Ant.Core.WebApi.Json;
  2. using Central.Control.WebApi.Filter;
  3. using Newtonsoft.Json.Converters;
  4. using Newtonsoft.Json.Serialization;
  5. using Swashbuckle.Application;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Net.Http.Formatting;
  10. using System.Web.Http;
  11. namespace Central.Control.WebApi
  12. {
  13. public static class WebApiConfig
  14. {
  15. public static void Register(HttpConfiguration config)
  16. {
  17. // Web API 配置和服务
  18. //filters.Add();
  19. config.Filters.Add(new CenterControlAuthorize());
  20. // Web API 路由
  21. config.MapHttpAttributeRoutes();
  22. config.Routes.MapHttpRoute(
  23. name: "DefaultApi",
  24. routeTemplate: "api/{controller}/{id}",
  25. defaults: new { id = RouteParameter.Optional }
  26. );
  27. // 设置默认跳转swagger
  28. config.Routes.MapHttpRoute(name: "swagger_root", routeTemplate: "",
  29. defaults: null,
  30. constraints: null,
  31. handler: new RedirectHandler((message => message.RequestUri.ToString()), "swagger"));
  32. // 驼峰
  33. // ConfigureJsonApi(config);
  34. }
  35. public static void ConfigureJsonApi(HttpConfiguration config)
  36. {
  37. var jsonFormatter = new JsonMediaTypeFormatter();
  38. var settings = jsonFormatter.SerializerSettings;
  39. IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
  40. //这里使用自定义日期格式
  41. timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss";
  42. settings.Converters.Add(timeConverter);
  43. settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
  44. config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));
  45. }
  46. }
  47. }