许多ASP.net WebAPI路由

时间:2015-07-02 14:22:21

标签: c# asp.net rest asp.net-web-api2

刚刚启动一个项目,它将使用大量的WebAPI端点并对路由有一些疑问。由于将有许多方法具有不同的参数名称,我所考虑的解决方案是添加具有不同参数名称的不同路由。

问题是我在各种ApiController类中定义的所有方法都具有类似于

的签名
public string SomeMethod(string token, string id);
{
    //method body
}

我想用其他方法:

public string SomeMethod1(string token, string logType)
{
    //method body
}
public string SomeMethod2(string token, string name)
{
    //method body
} ....etc

我想避免必须使用参数名称定义每个方法为“id”,以便路由匹配并绑定到ApiController类中的相应方法。

在WebAPI路由配置中添加许多路由是否可接受,因此具有不同参数名称的不同参数将绑定到正确的方法。

如果我在配置类中有很多路由会影响整体性能吗?

有没有更好的方法来实现我想要拉到这里的东西?

1 个答案:

答案 0 :(得分:1)

听起来你的主要关注点是a)需要多个路由定义与b)具有'id'参数名称的单个路由之间的权衡。虽然我怀疑许多路线的性能损失是一个大问题,但我会倾向于单一的路由定义,以便减少代码。您不必调用参数'id',但它必须是相同的。也许像'参数'那样泛泛的东西:

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{token}/{argument}",
    defaults: new { controller = "Blah", action = "SomeMethod" });