示例#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);
        }
示例#2
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);
        }