使用ASP Net Core修改Web API中传入请求的路由

时间:2018-08-02 21:01:15

标签: c# asp.net-core

我正在使用Asp Net Core 2.1进行Web API项目。 我现有的Web API具有以下Get方法(以及许多其他类似方法):

[HttpGet("GetEmployeByName/{Name}")]
public Employee GetEmployeeByName(string name)
{... some code...}

这将响应以下传入请求:

http://localhost:8080/Employee/GetEmployeeByName/{Name}

现在,我的要求是可以通过传递其他ID来调用某些API,例如:

http://localhost:8080/Employee/{Id}/GetEmployeeByName/{Name}.

我仍然需要在不更改路线的情况下将其映射到原始方法。 可以使用ASP Net Core的URL重写功能来完成此操作,并且可以在没有ID的情况下重写URL。

但是我想做的是也捕获{Id}并将其保存到Session \ Context。

有人知道如何提取ID并重写URL。

1 个答案:

答案 0 :(得分:-1)

也许您可以在optional parameters web api处找到所需的内容,您需要在最后添加该参数,因为可选参数总是在最后添加,您也可以尝试使用两种版本的端点封装逻辑并在两个版本上重复使用。