当前位置: 首页 > 知识库问答 >
问题:

如何在REST API中表达查询参数之间的高级表达式?

吴胜涝
2023-03-14

问题(或缺失特征)是不同查询参数之间缺乏表达的可能性。在我看来,您只能在参数之间指定,但是如果您希望不等于XOR,您该如何解决这个问题呢?

我希望能够表达这样的事情:

所有20岁或名称为Bosse的用户

除David和Lennart以外的所有用户

/users?name!=David&name!=Lennart

我的第一个想法是使用一个名为_filter的查询参数,并用我的表达式取一个字符串,如下所示:

共有1个答案

范京
2023-03-14

我可以看到两个实现这一目标的解决方案:

>

  • 执行get方法时使用包含表达式的特殊查询参数。这与OData处理其$filter参数的方式相同(请参见此链接:https://msdn.microsoft.com/fr-fr/library/gg309461.aspx#bkmk_filter)。下面是一个示例:

    /AccountSet?$filter=AccountCategoryCode/Value eq 2 or AccountRatingCode/Value eq 1
    

    parse.com也在其where参数中使用这种方法,但是查询是使用JSON结构描述的(请参见此链接:https://parse.com/docs/rest/guide#queries)。下面是一个示例:

    curl -X GET \
      -H "X-Parse-Application-Id: ${APPLICATION_ID}" \
      -H "X-Parse-REST-API-Key: ${REST_API_KEY}" \
      -G \
      --data-urlencode 'where={"score":{"$gte":1000,"$lte":3000}}' \
      https://api.parse.com/1/classes/GameScore
    
    $ curl -XGET 'http://localhost:9200/twitter/tweet/_search?routing=kimchy' -d '{
        "query": {
            "bool" : {
                "must" : {
                    "query_string" : {
                        "query" : "some query string here"
                    }
                },
                "filter" : {
                    "term" : { "user" : "kimchy" }
                }
            }
        }
    }
    '
    

  •  类似资料:
    • 查询表达式可以作为过滤,分组,注解或者是聚合的一个值或者是计算。这里(文档中)有很多内置表达式可以帮助你完成自己的查询。表达式可以组合,甚至是嵌套,来完成更加复杂的计算 支持的算术 Django支持在查询表达式使用加减乘除,求模,幂运算,Python常量,变量甚至是其它表达式。 New in Django 1.7: 增加了对指数运算符**的支持。 一些例子 Changed in Django 1.

    • 查询表达式 查询表达式支持大部分的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式: where('字段名','表达式','查询条件'); whereOr('字段名','表达式','查询条件'); 5.1还支持新的查询方法 whereField('表达式','查询条件'); whereOrField('表达式','查询条件'); Field使用字段的驼峰命名方式。 表达式不

    • 问题内容: 我有一个简单的任务,我需要搜索一个以字符串字符和其后的一位数字开头的记录。我正在尝试的是 和 但是两个查询总是返回一条记录 好像我执行以下查询 它返回 这意味着我有以ALA开头的记录,其后是一个数字, 编辑 我正在使用PHP MySQL和innodb引擎来实现它。 问题答案: 我认为您可以使用REGEXP代替LIKE

    • 本文向大家介绍postgresql SELECT查询中的公用表表达式,包括了postgresql SELECT查询中的公用表表达式的使用技巧和注意事项,需要的朋友参考一下 示例 公用表表达式支持提取较大查询的部分。例如:            

    • 本文向大家介绍mysql中如何使用正则表达式查询,包括了mysql中如何使用正则表达式查询的使用技巧和注意事项,需要的朋友参考一下 基本形式 属性名 regexp ‘匹配方式' 正则表达式的模式字符 ^ 匹配字符开始的部分 eg1: 从info表name字段中查询以L开头的记录 select * from info where name regexp '^L'; eg2: 从info表name字段

    • 主要内容:查询以特定字符或字符串开头的记录,查询以特定字符或字符串结尾的记录,替代字符串中的任意一个字符,匹配多个字符,匹配指定字符串,匹配指定字符串中的任意一个,匹配指定字符以外的字符,使用{n}或者{nm}来指定字符串连续出现的次数正则表达式主要用来查询和替换符合某个模式(规则)的文本内容。例如,从一个文件中提取电话号码,查找一篇文章中重复的单词、替换文章中的敏感语汇等,这些地方都可以使用正则表达式。正则表达式强大且灵活,常用于非常复杂的查询。 MySQL 中,使用 REGEXP 关键字指定