コード例 #1
0
        public static void ConfigureWebApiRoutes(RouteCollection routes)
        {
            string defaultResourceName = RouteNames.DefaultResource;
            // Search
            string route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.SEARCH);

            _routeNameToRoute.Add(route_name, routes.MapRouteWithName(
                                      string.Format(route_name), // Route name
                                      "{controller}/search",     // URL with parameters
                                      new { action = "Search" }, // Parameter defaults
                                      new { httpMethod = new HttpMethodConstraint("GET") }
                                      ));

            // New route
            // GET  /Photo => Get()
            //route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.LIST);
            //_routeNameToRoute.Add(route_name, routes.MapRouteWithName(
            //	string.Format(route_name), // Route name
            //	"{controller}", // URL with parameters
            //	new { action = "Get" }, // Parameter defaults
            //	new { httpMethod = new HttpMethodConstraint("GET") }
            //									  ));
            // GET  /Photo/1 => Get(1)
            //string route_name = "get_default";
            //route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.SHOW);
            //_routeNameToRoute.Add(route_name, routes.MapRouteWithName(
            //    string.Format(route_name), // Route name
            //    "{controller}/{id}", // URL with parameters
            //    new {action = "Get", id = UrlParameter.Optional}, // Parameter defaults
            //    new {httpMethod = new HttpMethodConstraint("GET")}
            //                                      ));
            route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.SHOW);
            _routeNameToRoute.Add(route_name, routes.MapRouteWithName(
                                      string.Format(route_name), // Route name
                                      "{controller}/{id}",       // URL with parameters
                                      new { action = "Get" },    // Parameter defaults
                                      new { httpMethod = new HttpMethodConstraint("GET") }
                                      ));

            // Create
            // POST /Photo => POST() or POST(Photo photo)
            route_name = "create_default";
            route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.CREATE);
            _routeNameToRoute.Add(route_name, routes.MapRouteWithName(
                                      string.Format(route_name), // Route name
                                      "{controller}",            // URL with parameters
                                      new { action = "Post" },   // Parameter defaults
                                      new { httpMethod = new HttpMethodConstraint("POST") }
                                      ));

            // UPDATE
            // POST or PUT /Photo/1 => Put(int id, Photo photo)
            route_name = "update_default";
            route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.UPDATE, false);
            _routeNameToRoute.Add(route_name, routes.MapRouteWithName(
                                      string.Format(route_name), // Route name
                                      "{controller}/{id}",       // URL with parameters
                                      new { action = "Put" },    // Parameter defaults
                                      new { httpMethod = new HttpMethodConstraint("PUT") }));
            route_name = "update_default_low_rest";
            route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.UPDATE);
            _routeNameToRoute.Add(route_name, routes.MapRouteWithName(
                                      string.Format(route_name), // Route name
                                      "{controller}/{id}",       // URL with parameters
                                      new { action = "Put" },    // Parameter defaults
                                      new { httpMethod = new HttpMethodConstraint("POST") }
                                      ));

            // DELETE
            // GET /Photo/1/delete => delete(int id)
            route_name = "delete_default_lowrest";
            route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.DELETE, true);
            _routeNameToRoute.Add(route_name, routes.MapRouteWithName(
                                      string.Format(route_name),  // Route name
                                      "{controller}/{id}/delete", // URL with parameters
                                      new { action = "Delete" },  // Parameter defaults
                                      new { httpMethod = new HttpMethodConstraint("GET") }
                                      ));
            // DELETE /Photo/id => delete(int id)
            route_name = "delete_default";
            route_name = RouteNames.GetRouteName(defaultResourceName, RouteAction.DELETE, false);
            _routeNameToRoute.Add(route_name, routes.MapRouteWithName(
                                      string.Format(route_name), // Route name
                                      "{controller}/{id}",       // URL with parameters
                                      new { action = "Delete" }, // Parameter defaults
                                      new { httpMethod = new HttpMethodConstraint("DELETE") }
                                      ));

            routes.MapRouteWithName(
                "Default",
                "{controller}/{action}",
                new { controller = "Home", action = "Index" }, null
                );

            isInitialized = true;
        }