Web API 路由以匹配命名空间

我正在创建一个 Web API 供我工作地点的内部使用。我之前没有创建过 Web API。


我想知道,是否可以将我的“WebApiConfig.cs”文件(我在其中处理默认路由)配置为默认控制器的命名空间路由?


例如:


CalendarDatesController.cs


namespace SampleWebService.Controllers.CalendarServices {

public class MilestoneDatesController : ApiController  {

    public DateTime Get() {

        return new DateTime();

    }

}

}


WebApiConfig.cs(默认)


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 }

        );

    }

WebApiConfig.cs(提案)


public static void Register(HttpConfiguration config)  {

        // Web API configuration and services


        // Web API routes

        config.MapHttpAttributeRoutes();


        config.Routes.MapHttpRoute(

            name: "DefaultApi",

            routeTemplate: "api/{**CalendarServices**}/{controller}/{id}",

            defaults: new { id = RouteParameter.Optional }

        );

    }

在我的“提案”中,它将在路径中包含“CalendarServices”,但是,如果我创建另一个文件夹,我希望另一个文件夹位于它的位置。我只是希望它默认为 - api/ControllersParentFolder/Controller/id


天涯尽头无女友
浏览 129回答 2
2回答

一只斗牛犬

尽管本文基于版本控制,但您应该能够根据您的需要使用它。

凤凰求蛊

看看我在 Github 上的解决方案 ( WebApiNamespaceRouting )。特征:不同命名空间中的相同控制器名称根据命名空间模式过滤路由中的控制器与招摇兼容
打开App,查看更多内容
随时随地看视频慕课网APP