我可以将我的WebAPI路由设置为要求包含参数X或参数Y吗?

3

在我的控制器中,对于GET方法,我希望要求传入一个名称。对于PUT方法,我希望要求传入id(并在消息体中传递对象)。例如:

GetObject(string name)
PutObject(int id, Object obj)

我可以创建一个路由,要求名称或ID参数存在吗?伪代码如下:
routeTemplate: api/{controller}/{name}|{id}

那么,最好的路由方式是什么?

1个回答

2
如果您正在RESTful地使用HTTP动词,我建议查看AttributeRouting包以解决您的问题。 它允许进行一些非常高级的路由,包括像您所寻找的条件语句。

太棒了!这个包让我可以像下面这样装饰函数:[GET("api/Object/{name}")] 用于 Get 函数,以及 [PUT("api/Object/{id}")] 用于 Put 函数。谢谢! - burntmarshmallows

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接