public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();

            var cors = new EnableCorsAttribute("*", "*", "*");
            config.EnableCors(cors);

            var jsonFormatter = config.Formatters.JsonFormatter;
            jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            config.AddJsonpFormatter();
        }
Example #2
0
        public static void Register(HttpConfiguration config)
        {
            config.AddJsonpFormatter(config.Formatters.JsonFormatter,"callback");
            config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}/{format}",
                defaults: new { id = RouteParameter.Optional, format = RouteParameter.Optional }
            );
            // 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();

            // To disable tracing in your application, please comment out or remove the following line of code
            // For more information, refer to: http://www.asp.net/web-api
            config.EnableSystemDiagnosticsTracing();
        }
        public static void Register(HttpConfiguration config)
        {
#if DEBUG
            config.EnableSystemDiagnosticsTracing();
#endif

            config.Services.Replace(typeof (IHttpControllerSelector),
                                    new RouteVersionedControllerSelector(
                                        GlobalConfiguration.Configuration));

            config.AddJsonpFormatter(callbackQueryParameter:"callback");

            //http://www.strathweb.com/2013/06/supporting-only-json-in-asp-net-web-api-the-right-way/
            //config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator());

            /*
                ==Geocoding Endpoints==
            */

            config.Routes.MapHttpRoute(
                name: "v1_GeocodeApi",
                routeTemplate: "api/v{version}/geocode/{street}/{zone}",
                defaults: new
                {
                    action = "get",
                    controller = "Geocode",
                    version = "1"
                });

            config.Routes.MapHttpRoute(
                name: "v1_GeocodeMultipleApi",
                routeTemplate: "api/v{version}/geocode/multiple",
                defaults: new
                {
                    action = "multiple",
                    controller = "Geocode",
                    version = "1"
                }); 
            
            config.Routes.MapHttpRoute(
                name: "v1_GeocodeReverseApi",
                routeTemplate: "api/v{version}/geocode/reverse/{x}/{y}",
                defaults: new
                {
                    action = "reverse",
                    controller = "Geocode",
                    version = "1"
                });

            config.Routes.MapHttpRoute(
               name: "v1_GeocodeRouteMilePost",
               routeTemplate: "api/v{version}/geocode/milepost/{route}/{milepost}",
               defaults: new
               {
                   action = "RouteMilePost",
                   controller = "Geocode",
                   version = "1"
               });

            config.Routes.MapHttpRoute(
               name: "v1_GeocodeReverseMilePost",
               routeTemplate: "api/v{version}/geocode/reversemilepost/{x}/{y}",
               defaults: new
               {
                   action = "ReverseMilePost",
                   controller = "Geocode",
                   version = "1"
               });

            config.Routes.MapHttpRoute(
               name: "v1_AgoGeocodeActivationApi",
               routeTemplate: "api/v{version}/geocode/ago/agrc-ago/GeocodeServer",
               defaults: new
               {
                   action = "ArcGisOnlineActivation",
                   controller = "Geocode",
                   version = "1"
               });

            config.Routes.MapHttpRoute(
              name: "v1_AgoGeocodeApi",
              routeTemplate: "api/v{version}/geocode/ago/agrc-ago/GeocodeServer/findAddressCandidates",
              defaults: new
              {
                  action = "ArcGisOnline",
                  controller = "Geocode",
                  version = "1"
              });

            /*
                ==Search Endpoints==
            */

            //http://webapi/api/v1/search/sgid10.boundaries.counties/name?apiKey=
            config.Routes.MapHttpRoute(
                name: "v1_SearchApi",
                routeTemplate: "api/v{version}/search/{featureClass}/{returnValues}",
                defaults: new
                {
                    action = "get",
                    controller = "Search",
                    version = "1"
                });

            /*
                ==Info Endpoints==
            */

            config.Routes.MapHttpRoute(
                name: "v1_InfoApi",
                routeTemplate: "api/v{version}/info/FeatureClassNames",
                defaults: new
                {
                    action = "FeatureClassNames",
                    controller = "Info",
                    version = "1"
                });

            config.Routes.MapHttpRoute(
               name: "v1_InfoAttributesApi",
               routeTemplate: "api/v{version}/info/FieldNames/{featureClass}",
               defaults: new
               {
                   action = "FeatureClassAttributes",
                   controller = "Info",
                   version = "1"
               });
        }
        public static void Register(HttpConfiguration config)
        {                     
            // Web API configuration and services
     
            //dependency injection
            var container = new UnityContainer();
            // Repository
            container.RegisterType<IBeerRepository, BeerDapperRepository>(new HierarchicalLifetimeManager());
            container.RegisterType<IBeerStyleRepository, BeerStyleDapperRepository>(new HierarchicalLifetimeManager());
            container.RegisterType<IBreweryRepository, BreweryDapperRepository>(new HierarchicalLifetimeManager());
            container.RegisterType<IFermentableRepository, FermentableDapperRepository>(new HierarchicalLifetimeManager());
            container.RegisterType<IHopRepository, HopDapperRepository>(new HierarchicalLifetimeManager());
            container.RegisterType<IOriginRespository, OriginDapperRepository>(new HierarchicalLifetimeManager());
            container.RegisterType<IOtherRepository, OtherDapperRepository>(new HierarchicalLifetimeManager());
            container.RegisterType<ISupplierRepository, SupplierDapperRepository>(new HierarchicalLifetimeManager());
            container.RegisterType<IUserRepository, UserDapperRepository>(new HierarchicalLifetimeManager());
            container.RegisterType<IYeastRepository, YeastDapperRepository>(new HierarchicalLifetimeManager());
            container.RegisterType<IGlassRepository, GlassDapperRepository>(new HierarchicalLifetimeManager());
            //Services
            container.RegisterType<IHopService, HopService>(new HierarchicalLifetimeManager());
            container.RegisterType<IYeastService, YeastService>(new HierarchicalLifetimeManager());
            container.RegisterType<IFermentableService, FermentableService>(new HierarchicalLifetimeManager());
            container.RegisterType<IOtherService, OtherService>(new HierarchicalLifetimeManager());
            container.RegisterType<ISupplierService, SupplierService>(new HierarchicalLifetimeManager());
            container.RegisterType<IOriginService, OriginService>(new HierarchicalLifetimeManager());
            container.RegisterType<IBeerStyleService, BeerStyleService>(new HierarchicalLifetimeManager());
            container.RegisterType<IBreweryService, BreweryService>(new HierarchicalLifetimeManager());
            container.RegisterType<IGlassService, GlassService>(new HierarchicalLifetimeManager());
            container.RegisterType<IUserService, UserService>(new HierarchicalLifetimeManager());
            container.RegisterType<IBeerService, BeerService>(new HierarchicalLifetimeManager());

            //Elasticsearch
            container.RegisterType<IHopElasticsearch, HopElasticsearch>(new HierarchicalLifetimeManager());
            container.RegisterType<IYeastElasticsearch, YeastElasticsearch>(new HierarchicalLifetimeManager());
            container.RegisterType<IFermentableElasticsearch, FermentableElasticsearch>(new HierarchicalLifetimeManager());
            container.RegisterType<IOtherElasticsearch, OtherElasticsearch>(new HierarchicalLifetimeManager());
            container.RegisterType<ISupplierElasticsearch, SupplierElasticsearch>(new HierarchicalLifetimeManager());
            container.RegisterType<ISearchElasticsearch, SearchElasticsearch>(new HierarchicalLifetimeManager());
            container.RegisterType<IOriginElasticsearch, OriginElasticsearch>(new HierarchicalLifetimeManager());
            container.RegisterType<IBeerStyleElasticsearch, BeerStyleElasticsearch>(new HierarchicalLifetimeManager());
            container.RegisterType<IBreweryElasticsearch, BreweryElasticsearch>(new HierarchicalLifetimeManager());
            container.RegisterType<IGlassElasticsearch, GlassElasticsearch>(new HierarchicalLifetimeManager());
            container.RegisterType<IUserElasticsearch, UserElasticsearch>(new HierarchicalLifetimeManager());
            container.RegisterType<IBeerElasticsearch, BeerElasticsearch>(new HierarchicalLifetimeManager());

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

            // There can be multiple exception loggers. (By default, no exception loggers are registered.)
            config.Services.Add(typeof(IExceptionLogger), new Log4NetExceptionLogger());


            // There must be exactly one exception handler. (There is a default one that may be replaced.)
            // To make this sample easier to run in a browser, replace the default exception handler with one that sends
            // back text/plain content for all errors.
            config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());
            config.AddJsonpFormatter();
            //var formatters = GlobalConfiguration.Configuration.Formatters;
            //var jsonFormatter = formatters.JsonFormatter;
            //var settings = jsonFormatter.SerializerSettings;
            //settings.Formatting = Formatting.Indented;
            //settings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            //var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
            //config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);   
            config.Formatters.XmlFormatter.UseXmlSerializer = true;
        }