搜索对象记录
您可以按一个或多个属性值搜索帐户中的自定义对象记录,按对象类型优化搜索,并按日期范围筛选结果。
看到自定义对象搜索参阅API。
关于查册要求
使用以下请求搜索对象记录:
POST / api /阳光/对象/查询
在请求正文中包含的JSON对象中指定搜索条件。例子:
{
“查询”:{
“颜色”:{“美元包含”:“红色”}
},
“创建”:{
“开始”:“2020-01-01 14:54:17.019”,
“结束”:“2020-03-05 09:23:08.063”
}
}
的查询
对象用于所有搜索。它定义了您的搜索条件。您可以按属性值搜索,并按对象类型优化搜索。有关更多信息,请参阅本文中的以下主题:
你也可以包括一个_created_at
或_updated_at
对象按日期范围筛选结果。看到按日期范围过滤结果.
例子
数据
请求正文保存到search.json文件:
{
“查询”:{
“美元和“:[
{“作者”:{“美元包含”:“谢耳朵”}},
{“_type”:{“$ eq”:“书”}}
]
},
“_created_at”:{
“开始”:“2019-07-01 00:00:00.000”,
“结束”:“2019-12-31 23:59:59.999”
},
“排序”:{
“_created_at”:“desc”
}
}
本文的其余部分将解释这些数据的含义。它基本上要求搜索类型为“book”的记录
作者
属性,包含字符串“Sheldon”。它将结果限制为2019年7月1日至2019年12月31日之间创建的记录,并按降序列出。
curl请求
旋度https://coolreads.亚博.com/api/阳光/对象/查询\
-d @search.json \
-H“application / json内容类型:\
-v-u(电子邮件保护).com:t1retube5-X帖子
Python的请求
进口json
进口请求
与开放(“search.json”,模式=“r”)作为f:
搜索=json.负载(f)
url=“https://coolreads.亚博zendesk.com/api/sunshine/objects/query”
头={“内容类型”:“application / json”}
凭证='(电子邮件保护)',“t1retube5”
响应=请求.帖子(url,json=搜索,身份验证=凭证,头=头)
如果响应.status_code! =200:
打印(f”{响应。status_code}:{响应.text}')
其他的:
打印(响应.json())
关于搜索结果
对任何对象记录搜索的响应由一个JSON对象组成,具有两个属性:
- 一个名为
数据
它列出与搜索条件匹配的对象记录。看到对象记录记录的格式 - 一个
链接
对象,其中包含下一个
URL对结果进行分页。搜索使用基于游标的分页,因此URL包含一个令牌
例子
状态:200好吧
{
“数据”:[
{
“类型”:“书”,
“id”:“5 d13764c-cf5f-11e9-aa86-2f9bb45ad15c”,
“external_id”:零,
“created_at”:“2019 - 09 - 04 - t22:00:10.191z”,
“updated_at”:“2019 - 09 - 04 - t22:00:10.191z”,
“属性”:{
“book_price”:542,
“book_available”:真正的,
“作者”:“西德尼·谢尔顿”,
“名称”:《末日阴谋》,
“出版社”:“布卢姆斯伯里出版”
}
},
{
“类型”:“书”,
“id”:“70588682 - ca8d - 11 - e9 - 893 a - 63225 c9f1206”,
“external_id”:零,
“created_at”:“2019 - 08 - 29 - t18:47:23.556z”,
“updated_at”:“2019 - 08 - 29 - t18:47:23.556z”,
“属性”:{
“book_price”:542,
“book_available”:真正的,
“作者”:“西德尼·谢尔顿”,
“名称”:《如果明天来了》,
“出版社”:“布卢姆斯伯里出版”
}
}
],
“链接”:{
“以前”:零,
“下一个”:“阳光/ api / /对象/查询?per_page = 50和页面= 2”
}
}
默认情况下,搜索端点每页返回10条记录。您可以通过指定a来更改该数字per_page
参数在请求URL中不超过1000。例子:
POST / api /阳光/对象/查询?per_page = 50
按属性值搜索
您可以根据对象的属性值进行搜索。对象的属性在对象类型的模式中定义。看到为自定义对象创建模式.
构建基本查询
查询由一个或多个查询条件组成。每个搜索条件指定要应用于记录的测试。如果一条记录满足条件,则认为该记录是匹配的。
单个搜索条件由属性名和包含比较运算符和值的对象组成。例如,如果对象类型的模式定义了颜色
属性,则可以返回具有颜色
属性等于"blue",使用以下查询:
{
“查询”:{
“颜色”:{“美元包含”:“蓝色”}
}
}
在这个例子中,美元包含
是比较运算符。可以使用的操作符取决于值的数据类型。
数据类型 | 运营商 |
---|---|
字符串 | 美元包含 ,美元的情商 |
数量 | 美元的情商 ,neq美元 |
数组 | 美元包含 |
对象 | 不是美元 |
布尔 | 美元的情商 ,neq美元 |
有关操作符的详细信息,请参见比较对象在API参考中。例如,尽管它的名字美元包含
运算符查找整个单词匹配。如果您搜索“sig”,响应将不包含任何“sign”实例。
通过属性值搜索将返回具有相同名称属性的任何对象类型的记录。例如,如果a车
和一个船
对象类型都有颜色
财产,搜索会返回匹配的汽车和船只记录。要将搜索限制到特定的对象类型,请参阅下一节,按对象类型细化搜索.
使用通配符搜索所有属性
如果您不知道属性的名称或不确定,可以使用星号(*)通配符作为属性名称,以返回符合条件的所有记录。例子:
{
“查询”:{
“*”:{“美元包含”:“蓝色”}
}
}
搜索将返回任何包含值为“blue”的属性的记录。
指定多个条件
可以在一个数组中指定多个搜索条件。要指定记录必须匹配所有条件,请使用美元和
操作符。例子:
{
“查询”:{
“美元和“:[
{“颜色”:{“美元包含”:“蓝色”}},
{“模型”:{“美元包含”:“CR”}}
]
}
}
若要指定记录必须匹配其中一个条件,请使用美元或
操作符。例子:
{
“查询”:{
”或“美元:[
{“模型”:{“美元包含”:“连续波”}},
{“model_year”:{“$ eq”:2019}}
]
}
}
您还可以嵌套条件以优化搜索。以下搜索将查找所有型号名称中有“CW”的、蓝色的、2019年或2020年型号的产品:
{
“查询”:{
“美元和“:[
{“模型”:{“美元包含”:“连续波”}},
{“颜色”:{“美元包含”:“蓝色”}},
{
”或“美元:[
{“model_year”:{“$ eq”:2019}},
{“model_year”:{“$ eq”:2020}}
]
}
]
}
}
按对象类型细化搜索
如果类型具有相同名称的属性,则按属性值搜索可以返回来自多个对象类型的记录。属性可以按对象类型细化搜索_type
关键字。例子:
{
“查询”:{
“美元和“:[
{“_type”:{“$ eq”:“船”}},
{“颜色”:{“美元包含”:“蓝色”}}
]
}
}
你也可以使用_type
嵌套查询中的条件。
可用于类型名称的比较操作符为美元的情商
而且neq美元
.
按日期范围过滤结果
您可以指定一个日期范围,以根据对象记录筛选结果。created_at
或updated_at
时间戳。
例如,下面的搜索将返回在2020年1月1日至2月29日这两个月内创建的对象记录:
{
“查询”:{
“模型”:{“美元包含”:“CR300”}
},
“_created_at”:{
“开始”:“2020-01-01 00:00:00.000”,
“结束”:“2020-02-29 23:59:59.999”
}
}
您可以指定_created_at
或者一个_updated_at
日期范围。
定义的日期时间开始
而且结束
取值范围必须为“yyyy-MM-dd HH:mm:ss.SSS”。
排序结果
可以根据时间戳对结果进行排序排序
参数:
{
“查询”:{
“模型”:{“美元包含”:“CVX300”}
},
“排序”:{
“_created_at”:“asc”
}
}
您可以为排序顺序指定“asc”或“desc”。