【发布时间】:2021-02-03 09:50:16
【问题描述】:
我有严格的 API 路由要求。这必须是 Get 请求,并且不能更改路由。用户可以按姓名搜索人,但也可以按姓名的一部分进行搜索:
api/People?name=Tom - “Tom”可以出现在姓名的任何部分,忽略大小写
api/People?name:contains=Tom - “Tom”必须在名称的开头,忽略大小写
api/People?name:exact=Tom - “Tom”必须区分大小写
在控制器中应该如何实现?
有3个参数的选项,可以改进吗?
public async Task<IActionResult> GetByName(
[FromQuery(Name = "name")] string name,
[FromQuery(Name = "name:contains")] string beginName,
[FromQuery(Name = "name:exact")] string exactName)
【问题讨论】:
-
我可以建议“public HttpResponseMessage Post([FromBody]FormDataCollection formbody)”。查看此链接了解详情docs.microsoft.com/en-us/aspnet/web-api/overview/…
-
谢谢,很遗憾,这必须是一个获取请求,并且该解决方案不适合我。我更正了描述
-
我将使用
name和operator这样的两个参数。
标签: c# rest asp.net-core asp.net-web-api .net-core