Example #1
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "Courses",
                routeTemplate: "api/courses/{id}",
                defaults: new { controller = "courses", id = RouteParameter.Optional }
                );
            config.Routes.MapHttpRoute(
                name: "Students",
                routeTemplate: "api/students/{userName}",
                defaults: new { controller = "students", userName = RouteParameter.Optional }
                );
            config.Routes.MapHttpRoute(
                name: "Enrollments",
                routeTemplate: "api/courses/{courseId}/students/{userName}",
                defaults: new { controller = "Enrollments", userName = RouteParameter.Optional }
                );
            var jsonFormatter = config.Formatters.OfType <JsonMediaTypeFormatter>().First();

            jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            //Replace the controller configuration selector
            config.Services.Replace(typeof(IHttpControllerSelector), new LearningControllerSelector((config)));
            //Configure HTTP Caching using Entity Tags (ETags)
            var connString           = System.Configuration.ConfigurationManager.ConnectionStrings["eLearningConnection"].ConnectionString;
            var eTagStore            = new CacheCow.Server.EntityTagStore.SqlServer.SqlServerEntityTagStore(connString);
            var cacheCowCacheHandler = new CacheCow.Server.CachingHandler(eTagStore);

            cacheCowCacheHandler.AddLastModifiedHeader = false;
            config.MessageHandlers.Add(cacheCowCacheHandler);
        }
        public static HttpConfiguration Register()
        {
            //SetUpIoC();

            var config = new HttpConfiguration();

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.AddHttpRoutes();

            var container = CreateDependencyInjectionContainer();

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            config.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

            config.Formatters.JsonFormatter.SupportedMediaTypes.Add(
                new MediaTypeHeaderValue("application/json-patch+json"));

            config.Formatters.JsonFormatter.SerializerSettings.Formatting
                = Newtonsoft.Json.Formatting.Indented;

            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver
                = new CamelCasePropertyNamesContractResolver();

            var cacheCowMessageHandler = new CacheCow.Server.CachingHandler(config);

            config.MessageHandlers.Add(cacheCowMessageHandler);

            // Configure logger
            ConfigureLogger();

            return(config);
        }
Example #3
0
        public static void Register(HttpConfiguration config)
        {
            config.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
            config.Formatters.JsonFormatter.SerializerSettings.Formatting       = Newtonsoft.Json.Formatting.Indented;
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json-patch+json"));

            var cors = new EnableCorsAttribute("http://localhost:55736", "*", "* ");

            config.EnableCors(cors);

            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            config.Services.Add(typeof(ValueProviderFactory), new HttpValueProviderFactory());

            var cacheCowCacheHandler = new CacheCow.Server.CachingHandler();

            config.MessageHandlers.Add(cacheCowCacheHandler);
        }
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services
            config.EnableCors();
            var json = config.Formatters.JsonFormatter;

            json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
            json.SerializerSettings.ContractResolver           = new CamelCasePropertyNamesContractResolver();
            config.Formatters.Remove(config.Formatters.XmlFormatter);
            config.MapHttpAttributeRoutes();

            var cacheCowCacheHandler = new CacheCow.Server.CachingHandler();

            config.MessageHandlers.Add(cacheCowCacheHandler);
            // Web API routes

            /*
             * config.MapHttpAttributeRoutes();
             *
             * config.Routes.MapHttpRoute(
             *  name: "DefaultApi",
             *  routeTemplate: "api/{controller}/{id}",
             *  defaults: new { id = RouteParameter.Optional }
             * );
             * */
        }
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "Courses",
                routeTemplate: "api/courses/{id}",
                defaults: new {controller="courses", id = RouteParameter.Optional }
            );
            config.Routes.MapHttpRoute(
             name: "Students",
             routeTemplate: "api/students/{userName}",
             defaults: new { controller = "students", userName = RouteParameter.Optional }
         );
            config.Routes.MapHttpRoute(
            name: "Enrollments",
            routeTemplate: "api/courses/{courseId}/students/{userName}",
            defaults: new { controller = "Enrollments", userName = RouteParameter.Optional }
        );
            var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
            jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            //Replace the controller configuration selector
            config.Services.Replace(typeof(IHttpControllerSelector), new LearningControllerSelector((config)));
            //Configure HTTP Caching using Entity Tags (ETags)
            var connString = System.Configuration.ConfigurationManager.ConnectionStrings["eLearningConnection"].ConnectionString;
            var eTagStore = new CacheCow.Server.EntityTagStore.SqlServer.SqlServerEntityTagStore(connString);
            var cacheCowCacheHandler = new CacheCow.Server.CachingHandler(eTagStore);
            cacheCowCacheHandler.AddLastModifiedHeader = false;
            config.MessageHandlers.Add(cacheCowCacheHandler);
        }
Example #6
0
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();

            GlobalConfiguration.Configuration.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            var cacheCow = new CacheCow.Server.CachingHandler(config, "");

            config.MessageHandlers.Add(cacheCow);
        }
Example #7
0
        public static void Register(HttpConfiguration config)
        {
            //Register CacheCow
            var cacheCow = new CacheCow.Server.CachingHandler(config, "");

            config.MessageHandlers.Add(cacheCow);

            //Enable CORS
            //http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

            //var cors = new EnableCorsAttribute(ConfigurationManager.AppSettings["CORSSites"].ToString(), "*", "*");
            //cors.SupportsCredentials = true; //the HTTP response will include an 'Access-Control-Allow-Credentials' header
            //config.EnableCors(cors);

            // Web API routes
            config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );


            var tokenBuilder = new SecurityTokenBuilder();
            var configReader = new ConfigurationReader();

            //var jwtHandlerCert = new JwtAuthenticationMessageHandler
            //{
            //    AllowedAudience = configReader.AllowedAudience,
            //    AllowedAudiences = configReader.AllowedAudiences,
            //    Issuer = configReader.Issuer,
            //    SigningToken = tokenBuilder.CreateFromCertificate(configReader.SubjectCertificateName),
            //    PrincipalTransformer = new SamplePrincipalTransformer()
            //};

            var jwtHandlerSharedKey = new JwtAuthenticationMessageHandler
            {
                AllowedAudience           = configReader.AllowedAudience,
                Issuer                    = configReader.Issuer,
                SigningToken              = tokenBuilder.CreateFromKey(configReader.SymmetricKey),
                PrincipalTransformer      = new SamplePrincipalTransformer(),
                CookieNameToCheckForToken = configReader.CookieNameToCheckForToken
            };

            //config.MessageHandlers.Add(jwtHandlerCert);
            config.MessageHandlers.Add(jwtHandlerSharedKey);
        }
Example #8
0
        public static HttpConfiguration Register()
        {
            var config = new HttpConfiguration();

            // Web API routes
            config.MapHttpAttributeRoutes();

            SetMediaTypeFormatters(config);

            config.DependencyResolver = new NinjectResolver(CreateInfoDigestKernel());

            var etagstore = new SqlServerEntityTagStore(ConfigurationManager.ConnectionStrings["InfoDigestContext"].ConnectionString);
            var cacheHandler = new CacheCow.Server.CachingHandler(config, etagstore) {AddLastModifiedHeader = true};

            config.MessageHandlers.Add(cacheHandler);

            return config;
        }
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            var cacheCowCacheHandler = new CacheCow.Server.CachingHandler(config);

            config.MessageHandlers.Add(cacheCowCacheHandler);
        }
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services
            config.EnableCors();
            var json = config.Formatters.JsonFormatter;
            json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
            json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            config.Formatters.Remove(config.Formatters.XmlFormatter);
            config.MapHttpAttributeRoutes();

            var cacheCowCacheHandler = new CacheCow.Server.CachingHandler();
            config.MessageHandlers.Add(cacheCowCacheHandler);
            // Web API routes
            /*
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
             * */
        }
Example #11
0
        public static void Configuration(IAppBuilder app)
        {
            var dbConnectionString = WebConfigurationManager.AppSettings["DbConnectionString"];

            app.UseNLog();
            var logger = app.GetLoggerFactory().Create("Startup");

            var config = new HttpConfiguration();

            // Use camel case JSON
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            config.Formatters.JsonFormatter.UseDataContractJsonSerializer       = false;

            // Return Not Acceptable for unknown content types
            var defaultNegotiator = new DefaultContentNegotiator(excludeMatchOnTypeOnly: true);

            config.Services.Replace(typeof(IContentNegotiator), defaultNegotiator);

            // Fluent Validation
            FluentValidationModelValidatorProvider.Configure(config);

            // IOC using Autofac
            var builder = new ContainerBuilder();

            builder.RegisterType <DbRepository>().As <IDbRepository>().InstancePerLifetimeScope();
            builder.RegisterInstance(new DbRepository.Setting(dbConnectionString)).SingleInstance();
            builder.RegisterType <ProductRepository>().As <IProductRepository>().InstancePerLifetimeScope();
            builder.RegisterInstance(new ProductRepository.Setting(dbConnectionString)).SingleInstance();
            builder.RegisterType <SellerRepository>().As <ISellerRepository>().InstancePerLifetimeScope();
            builder.RegisterInstance(new SellerRepository.Setting(dbConnectionString)).SingleInstance();

            builder.RegisterType <Mapper>().As <IMapper>().InstancePerLifetimeScope();
            builder.RegisterType <TypeHelper>().As <ITypeHelper>().InstancePerLifetimeScope();
            builder.RegisterType <PropertyMappingService>().As <IPropertyMappingService>().InstancePerLifetimeScope();

            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            var container = builder.Build();

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
            app.UseAutofacMiddleware(container);
            app.UseAutofacWebApi(config);
            // IOC using Autofac

            // Caching
            var objCacheCow = new CacheCow.Server.CachingHandler(config);

            config.MessageHandlers.Add(objCacheCow);

            // Rate Limiting. Does not return response headers like X-Rate-Limit.
            config.MessageHandlers.Add(new ThrottlingHandler
            {
                Policy = new ThrottlePolicy(perSecond: 50, perMinute: 100, perHour: 200, perDay: 1500, perWeek: 3000)
                {
                    IpThrottling = true
                },
                Repository = new CacheRepository()
            });

            config.Services.Add(typeof(IExceptionLogger), new NLogExceptionLogger(logger));
            config.MapHttpAttributeRoutes(); // Go through our controllers and get the routes
            config.EnableSwagger(c => c.SingleApiVersion("v1", "Web Api Pattern - Framework"))
            .EnableSwaggerUi();
            app.UseWebApi(config);
        }
Example #12
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services
            // Configure Web API to use only bearer token authentication.
            config.SuppressDefaultHostAuthentication();
            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            config.Routes.MapHttpRoute(
                name: "PO",
                routeTemplate: "api/po/{id}",
                defaults: new { controller = "po", id = RouteParameter.Optional }
                );

            config.Routes.MapHttpRoute(
                name: "Requisition",
                routeTemplate: "api/requisition/{id}",
                defaults: new { controller = "requisition", id = RouteParameter.Optional }
                );

            config.Routes.MapHttpRoute(
                name: "Part",
                routeTemplate: "api/part/{id}",
                defaults: new { controller = "part", id = RouteParameter.Optional }
                );
            config.Routes.MapHttpRoute(
                name: "POUser",
                routeTemplate: "api/po/{poNumber}/User/{userName}",
                defaults: new { controller = "po", reqNumber = RouteParameter.Optional }
                );

            config.Routes.MapHttpRoute(
                name: "PO2",
                routeTemplate: "api/po/{id}",
                defaults: new { controller = "po", id = RouteParameter.Optional }
                );

            //To be used if filtering is global
            //config.Filters.Add(new ForceHttpsAttribute());
            //Versioning with URI
            //config.Services.Replace(typeof(IHttpControllerSelector), new LearningControllerSelector((config)));

            //Configure HTTP Caching using Entity Tags (ETags)
            //var connString = System.Configuration.ConfigurationManager.ConnectionStrings["WMDBDEMOEntities"].ConnectionString;
            //var eTagStore = new CacheCow.Server.EntityTagStore.SqlServer.SqlServerEntityTagStore(connString);
            //var cacheCowCacheHandler = new CacheCow.Server.CachingHandler(eTagStore);
            //cacheCowCacheHandler.AddLastModifiedHeader = false;
            //config.MessageHandlers.Add(cacheCowCacheHandler);

            //Configure HTTP Caching using Entity Tags (ETags)
            var cacheCowCacheHandler = new CacheCow.Server.CachingHandler();

            config.MessageHandlers.Add(cacheCowCacheHandler);

            var json = config.Formatters.JsonFormatter;

            json.SerializerSettings.PreserveReferencesHandling =
                Newtonsoft.Json.PreserveReferencesHandling.Objects;

            config.Formatters.Remove(config.Formatters.XmlFormatter);

            // force return objects to camel case
            var jsonStyleFormatter = config.Formatters.OfType <JsonMediaTypeFormatter>().FirstOrDefault();

            jsonStyleFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        }
Example #13
0
        public static void Register(HttpConfiguration config)
        {
            // Web API 配置和服务

            #region 配置JSON的格式

            var jsonFormatter = config.Formatters.OfType <JsonMediaTypeFormatter>().First();
            jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            // 在全局设置中,把所有返回的格式清除,设置JSON。所有的返回的xml格式都会被清除
            //config.Formatters.Clear();
            //config.Formatters.Add(new JsonMediaTypeFormatter());
            // 等同于:
            //GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

            #endregion

            #region 在Web Api中强制使用Https

            //config.Filters.Add(new ForceHttpsAttribute());

            #endregion

            #region 自定义的“Controller Selector”
            //Replace the controller configuration selector
            config.Services.Replace(typeof(IHttpControllerSelector), new LearningControllerSelector((config)));
            // 自定义返回Json格式数据
            config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));

            #endregion

            #region 在Web Api中配置CacheCow,使用本机内存实现缓存的功能
            //Configure HTTP Caching using Entity Tags (ETags)
            var cacheCowCacheHandler = new CacheCow.Server.CachingHandler();
            config.MessageHandlers.Add(cacheCowCacheHandler);
            #endregion


            // Web API 路由
            config.MapHttpAttributeRoutes();

            //config.Routes.MapHttpRoute(
            //    name: "DefaultApi",
            //    routeTemplate: "api/{controller}/{id}",
            //    defaults: new { id = RouteParameter.Optional }
            //);

            config.Routes.MapHttpRoute(
                name: "Courses",
                routeTemplate: "api/courses/{id}",
                defaults: new { controller = "courses", id = RouteParameter.Optional }
                );
            config.Routes.MapHttpRoute(
                name: "Enrollments",
                routeTemplate: "api/courses/{courseId}/students/{userName}",
                defaults: new { controller = "Enrollments", userName = RouteParameter.Optional }
                );

            config.Routes.MapHttpRoute(
                name: "Students",
                routeTemplate: "api/students/{userName}",
                defaults: new { controller = "students", userName = RouteParameter.Optional }
                );

            config.Routes.MapHttpRoute(
                name: "Students1",
                routeTemplate: "api/v1/students/{userName}",
                defaults: new { controller = "students", userName = RouteParameter.Optional }
                );

            config.Routes.MapHttpRoute(
                name: "Students2",
                routeTemplate: "api/v2/students/{userName}",
                defaults: new { controller = "studentsV2", userName = RouteParameter.Optional }
                );
        }