多个 C# WebAPI API 路由 - 将 API 方法限制为其中一个路由
Multiple C# WebAPI API routes - restrict API method to one of the routes
我的 API 赞
有多条路线
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{token}/{controller}/{action}",
defaults: null,
constraints: null,
handler: HttpClientFactory.CreatePipeline(
new HttpControllerDispatcher(config),
new DelegatingHandler[] { new ApiTokenValidator() })
);
config.Routes.MapHttpRoute(
name: "LoginApi",
routeTemplate: "api/{controller}/{action}",
defaults: null,
constraints: null,
handler: HttpClientFactory.CreatePipeline(
new HttpControllerDispatcher(config),
new DelegatingHandler[] { new ApiLoginHandler() })
);
如何确保我的 APIController 中的方法只能被例如 LoginApi route/handler 使用?
就像Uriil对问题的评论,答案是使用属性路由。
在我的示例中,我这样使用它来限制 AddUser 方法仅用于 wordpress api
[Route("api/wordpress/shared/AddUser")]
[HttpPost]
public Object AddUser(string username)
{
}
我的 API 赞
有多条路线config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{token}/{controller}/{action}",
defaults: null,
constraints: null,
handler: HttpClientFactory.CreatePipeline(
new HttpControllerDispatcher(config),
new DelegatingHandler[] { new ApiTokenValidator() })
);
config.Routes.MapHttpRoute(
name: "LoginApi",
routeTemplate: "api/{controller}/{action}",
defaults: null,
constraints: null,
handler: HttpClientFactory.CreatePipeline(
new HttpControllerDispatcher(config),
new DelegatingHandler[] { new ApiLoginHandler() })
);
如何确保我的 APIController 中的方法只能被例如 LoginApi route/handler 使用?
就像Uriil对问题的评论,答案是使用属性路由。
在我的示例中,我这样使用它来限制 AddUser 方法仅用于 wordpress api
[Route("api/wordpress/shared/AddUser")]
[HttpPost]
public Object AddUser(string username)
{
}