Web 的路由配置-API
Routing Config for Web-API
我正在使用 .Net 4.5.2 创建 Web-API 服务。
我想要以下 URI:
- /api/v1/timeseries/{id}
- /api/v1/timeseries/批准/{id}
有了这个,我希望有两个控制器:
- TimeSeriesController
- TimeSeriesApprovalController
使用如下默认路由,我实现了第一个预期结果 (/api/v1/timeseries/{id}
),但我不确定如何实现第二个结果。有人可以告诉我如何修改路由配置以处理第二个 URI 吗?
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/v1/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
一种选择是使用您现有的路线,并使用 url 如:
/api/v1/timeseriesapproval/{id}
请注意,这与您现有的路线完全匹配:
"api/v1/{controller}/{id}",
其中 controller
匹配 timeseriesapproval
.
另一种选择是设置一条新路线(在现有路线之前)专门针对此需求:
config.Routes.MapHttpRoute(name: "PutThisBeforeYourExistingOneApi",
routeTemplate: "api/v1/timeseries/approval/{id}",
defaults: new { controller = "TimeSeriesApproval", id = RouteParameter.Optional } );
我正在使用 .Net 4.5.2 创建 Web-API 服务。
我想要以下 URI:
- /api/v1/timeseries/{id}
- /api/v1/timeseries/批准/{id}
有了这个,我希望有两个控制器:
- TimeSeriesController
- TimeSeriesApprovalController
使用如下默认路由,我实现了第一个预期结果 (/api/v1/timeseries/{id}
),但我不确定如何实现第二个结果。有人可以告诉我如何修改路由配置以处理第二个 URI 吗?
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/v1/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
一种选择是使用您现有的路线,并使用 url 如:
/api/v1/timeseriesapproval/{id}
请注意,这与您现有的路线完全匹配:
"api/v1/{controller}/{id}",
其中 controller
匹配 timeseriesapproval
.
另一种选择是设置一条新路线(在现有路线之前)专门针对此需求:
config.Routes.MapHttpRoute(name: "PutThisBeforeYourExistingOneApi",
routeTemplate: "api/v1/timeseries/approval/{id}",
defaults: new { controller = "TimeSeriesApproval", id = RouteParameter.Optional } );