许多ASP.net WebAPI路由

本文关键字:路由 WebAPI net ASP 许多 | 更新日期: 2023-09-27 18:00:46

刚刚开始一个项目,该项目将使用大量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路由配置中添加许多路由,以便具有不同参数名称的不同参数绑定到正确的方法,这是一种可以接受的做法吗。

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

有没有更好的方法来实现我想要实现的目标?

许多ASP.net WebAPI路由

听起来您主要关心的是a)需要多个路由定义与b)具有"id"参数名称的单个路由之间的权衡。虽然我怀疑许多路由的性能影响是否很大,但为了减少代码,我倾向于单一路由定义。您不必调用参数"id",但它需要是相同的。也许像"论点"这样的通用东西:

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