gpt4 book ai didi

.Net Core Web API,基于一个值创建到具有相同路由前缀的不同 Controller 的路由逻辑

转载 作者:行者123 更新时间:2023-12-04 09:14:22 24 4
gpt4 key购买 nike

我必须为 .Net Core 3.0 Web API 项目创建路由逻辑,该项目路由到具有相同路由前缀的不同 Controller 给定值。
例子:
我有基于状态的 Controller 。

StateUsersCOController
StateUsersCAController
StateUsersWAController
诸如此类。
它们都实现了相同的方法,例如:
GetUsers();
我想要实现的是根据状态信息将我的请求路由到相关 Controller ,例如:
api/StateUsers/CA
或者
api/StateUsers?state=CA
或者
api/StateUsers and Request Header has the state Information such as State:CA
我能想到的是创建一个名为 StateUsers 的 Controller ,以上述提供的方式之一捕获状态值并将请求重定向到相关 Controller ,但我想避免重定向并实现这是路由级别。你们能不能提供一个更好的方法来做到这一点。

最佳答案

具有固定路由模板的属性路由应该能够唯一区分 Controller

[ApiController]
[Route("api/StateUsers/CO")]
public class StateUsersCOController : Controller {
//GET api/StateUsers/CO
[HttpGet]
public IActionResult GetUsers() {
//...
}
}

[ApiController]
[Route("api/StateUsers/CA")]
public class StateUsersCAController : Controller {
//GET api/StateUsers/CA
[HttpGet]
public IActionResult GetUsers() {
//...
}
}

[ApiController]
[Route("api/StateUsers/WA")]
public class StateUsersWAController : Controller {
//GET api/StateUsers/WA
[HttpGet]
public IActionResult GetUsers() {
//...
}
}
注意删除 GetUsers从路由以允许更简化的 RESTFul URL。
如果你坚持包含 GetUsers在 URL 中,然后将其包含在路由模板中。
引用 Routing to controller actions in ASP.NET Core
引用 Routing in ASP.NET Core

关于.Net Core Web API,基于一个值创建到具有相同路由前缀的不同 Controller 的路由逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63280934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com