【问题标题】:Advance filtering in HTTP GETs of ASP.NET web APIASP.NET Web API 的 HTTP GET 中的高级过滤
【发布时间】:2022-06-18 00:49:23
【问题描述】:

我目前正在学习如何在 ASP.NET Web API 中创建 API(我正在使用 Visual Studio Community 2022 和 .Net 6.0)。 我一直在摆弄 HTTP GET,但遇到了以下问题...如何轻松实现动态和高级过滤和排序选项?

例如,假设我的模型具有以下字段:ID、姓名、姓氏、年龄、添加日期。 我希望能够过滤这些字段中的任何一个,并且每个字段都有其“特殊”查询选项,例如,我可以过滤大于添加日期的字段,但我不能在名称字段中这样做。

另外,我希望能够按特定列或多列升序或降序对数据进行排序。

换句话说,我应该遵循什么方法来轻松实现这个过滤和排序解决方案?

提前致谢! :D

【问题讨论】:

  • 你可以实现不同的 GET 动作方法,接受各种参数。 GetPersonByID、GetPersonByAge 等。此外,还有像ServiceStack 这样的包,可以为您处理样板代码。
  • 听起来您正在接近 OData API。有一些库和工具可以帮助您实现该标准。

标签: c# asp.net asp.net-core asp.net-web-api .net-6.0


【解决方案1】:

要走的路是使用 Odata,然后在您希望它们可查询的 GET 方法中,您必须在 get 方法上方添加 [EnableQuery] 您还必须映射可以执行哪些操作的 OData 权限(例如,可以进行计数操作,或者查询只能在特定列中进行特殊过滤...)

【讨论】:

    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 2014-04-08
    • 2012-12-18
    • 2016-07-09
    • 2019-07-25
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多