【问题标题】:Modify route of incoming request in Web API using ASP Net Core使用 ASP Net Core 在 Web API 中修改传入请求的路由
【发布时间】:2019-01-10 17:25:33
【问题描述】:

我正在使用 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 Rewrite 功能来完成,并且可以在没有 id 的情况下重写 URL。

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

有谁知道如何提取 id 并重写 URL。

【问题讨论】:

    标签: c# asp.net-core


    【解决方案1】:

    也许你可以在这里找到你需要的东西optional parameters web api,你需要在最后添加那个参数,因为可选参数总是在最后,你也可以尝试使用两个版本的端点封装逻辑和在两个版本上重复使用它。

    【讨论】:

    • 如果我仍处于项目的开始阶段,我本可以使用它。我有数百个这样的 API,不想为它们修改路由。希望在请求到达 API 方法之前在管道中完成一些事情
    • 你应该在问题中指定了管道
    猜你喜欢
    • 2019-04-13
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2021-11-03
    • 2017-07-10
    • 2013-01-16
    • 2019-08-06
    • 2019-01-19
    相关资源
    最近更新 更多