asp.net web api -多个c# WebAPI api路由-将api方法限制为其中一个路由
本文关键字:api 路由 一个 方法 多个 web net WebAPI asp | 更新日期: 2023-09-27 17:53:58
我的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路由/处理程序使用?
就像uril对这个问题的评论一样,答案是使用属性路由。
截至http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2#add-routes
在我的示例中,我这样使用它来限制AddUser方法仅用于wordpress api
[Route("api/wordpress/shared/AddUser")]
[HttpPost]
public Object AddUser(string username)
{
}