我们正在将我们的Web API升级到.Net Core。该API是具有员工搜索和GET端点的员工API,如下所示:
GET /employees/{id}
GET /employees
对于Get端点,当前以下两个调用都有效:
https://example.com/employees/001
https://example.com/employees/{id}?id=001
将代码升级到.Net Core 6.0后,只有以下调用有效:
https://example.com/employees/001
查询字符串中具有id的另一个调用不起作用。是否有办法使这两个调用都在.Net Core中起作用
3条答案
按热度按时间pu82cl6c1#
这就是你定义路由的全部方式,如果你把参数放在路由中,比如/employees/001,它会寻找那个路径来决定要访问哪个函数,比如我设置了2个路由来调用2个函数:
第一条路线在我去某事/stuff/37时被击中
第二个函数在路由中没有这个参数,但它也是这个函数的一个参数,所以如果它出现了,它知道要查找它:
但是,也许您希望用一个函数来处理这两种情况,如果您为同一个函数正确定义了路由,就可以同时处理这两种情况。
在这种情况下,任何一个URL都将转到该函数,处理路由中的参数或作为查询字符串。
x6h2sr282#
操作路由属性应将id作为可选参数
或者如果控制者是雇员
tf7tbtn23#
这是我最后合并我的.NET Framework Get()& Get(string lat,string lng)的方式。如果我从头开始创建这个,我不会这样做,但我有一个IOS应用程序,将需要得到更新后,我迁移我的API到.NET核心。