自定义对象搜索
您可以使用Search Object Records端点根据属性、对象类型、创建时间和更新时间筛选自定义对象记录。
有关快速入门指南,请参见搜索Sunshine对象记录。
JSON格式
搜索被表示为具有以下属性的JSON对象:
名字 | 类型 | 只读 | 强制性的 | 描述 |
---|---|---|---|---|
数据 | 数组 | 假 | 假 | 匹配查询参数的对象记录 |
链接 | 对象 | 假 | 假 | 结果的下一页和上一页的url。看到分页 |
例子
{
“数据”:[
{
“属性”:{
“作者”:“西德尼·谢尔顿”,
“book_available”:真正的,
“book_price”:542,
“名称”:“世界末日阴谋”,
“出版社”:“布卢姆斯伯里出版”
},
“created_at”:“2019 - 09 - 04 - t22:00:10.191z”,
“external_id”:零,
“id”:“5 d13764c-cf5f-11e9-aa86-2f9bb45ad15c”,
“类型”:“书”,
“updated_at”:“2019 - 09 - 04 - t22:00:10.191z”
}
],
“链接”:{
“下一个”:“阳光/ api / /对象/查询?per_page=10&cursor=MjAyMC0wNi0wOVQyMjowMjoyNC45MjFa",
“以前”:零
}
}
搜索对象记录
POST / api /阳光/对象/查询
返回与查询参数匹配的对象记录。
搜索由具有以下属性的JSON对象表示。
名字 | 类型 | 要求 | 描述 |
---|---|---|---|
查询 | 对象 | 是的 | 查询的主体。看到查询 |
_created_at | 对象 | 没有 | 指定日期范围的对象,必须在该日期范围内创建记录才能进行匹配。看到日期范围对象 |
_updated_at | 对象 | 没有 | 指定日期范围的对象,必须在该日期范围内更新记录以进行匹配。看到日期范围对象 |
sort_by | 字符串 | 没有 | 指定对返回记录排序的顺序的字符串。看到排序结果。默认为"_created_at desc" |
查询
一个查询
是一个JSON对象,具有以下属性:
名字 | 类型 | 要求 | 描述 |
---|---|---|---|
<属性> | 对象 | 没有 | 一个比较对象指定要匹配的记录要满足的属性值条件 |
_type | 对象 | 没有 | 一个比较对象指定要匹配记录所要满足的对象类型条件 |
美元和 | 数组 | 没有 | 连接数组查询 对象(逻辑与) |
美元或 | 数组 | 没有 | 析取的数组查询 对象(逻辑或) |
例子:
{
“查询”:{
“美元和“:[
{“作者”:{“$ eq”:“西德尼·谢尔顿”}},
{“出版社”:{“美元包含”:“布卢姆茨伯里派”}}
]
}
}
日期范围对象
日期范围对象是JSON对象,它至少表示一个开始
和结束
日期。包含这些对象的请求将被过滤,仅包括在该范围内创建或更新的记录,具体取决于使用的请求参数。如果两个创建
和更新
如果在请求中指定,则只返回满足两个日期范围的记录。
日期范围对象具有以下属性:
名字 | 类型 | 要求 | 格式 | 描述 |
---|---|---|---|---|
开始 | 字符串 | 没有 | yyyy-MM-dd HH: mm: ss。瑞士 | 包括日期范围的开头 |
结束 | 字符串 | 没有 | yyyy-MM-dd HH: mm: ss。瑞士 | 日期范围的唯一结束 |
日期范围可以同时包含、其中之一或不包含开始
和结束
参数。请注意,不包含参数的日期范围不会影响请求返回的记录。
例子:
{
“查询”:{
“颜色”:{“$ eq”:“红色”}
},
“_created_at”:{
“开始”:“2020-01-01 14:54:17.019”,
“结束”:“2020-03-05 09:23:08.063”
}
}
比较对象
比较对象定义了要匹配记录所要满足的条件。该条件基于属性值或对象类型。
比较对象是一个JSON对象,具有以下属性:
名字 | 类型 | 要求 | 描述 |
---|---|---|---|
美元包含 | 数组、布尔值、整数、数字、字符串 | 没有 | 匹配相应属性值包含所提供值的记录 |
美元的情商 | 布尔值,整数,数字,字符串 | 没有 | 匹配相应属性值等于所提供值的记录 |
neq美元 | 布尔值,整数,数字,字符串 | 没有 | 的快捷方式{"$not": {"$eq": 。匹配对应属性值不等于所提供值的记录 |
不是美元 | 对象 | 没有 | 比较对象。匹配对应属性值不满足比较对象的记录 |
查询所有属性
比较对象可以应用于特定属性。例如,{"color": {"$eq": "red"}}
将匹配记录有颜色
属性,其值等于"red"。
通过使用“*”
通配符,比较对象也可以应用于所有属性。例如,{"*": {"$eq": "red"}}
将匹配属性值等于“red”的记录,无论属性的名称如何。这可以显著提高查询表达式的经济性。与任何通配符表达式一样,可能会收到一些意想不到的结果。
查询嵌套属性
当一条记录有一个或多个嵌套属性时,您可以使用点表示法在查询中指定它们的完全限定名称。想想这个记录:
{
“类型”:“书”,
“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”:真正的,
“stores_available”:[“938475”,“872648”,“234324”]
},
“名称”:“世界末日阴谋”,
“出版社”:“布卢姆斯伯里出版”
}
}
上面的记录将通过以下查询进行匹配:
{
“查询”:{
“美元和“:[
{“author.first”:{“$ eq”:“悉尼”}},
{“author.last”:{“$ eq”:“谢耳朵”}},
{“inventory.book_available”:{“$ eq”:真正的}},
{“inventory.stores_available”:{“美元包含”:“872648”}}
]
}
}
排序结果
的sort_by
参数必须为字符串格式< _created_at | _updated_at > < asc | desc >
。目前只有_created_at
和_updated_at
元数据字段可以以这种方式使用。
分页
默认情况下,搜索端点每个页面返回10条记录。可以通过传递属性来更改每个请求的记录数量per_page
参数在请求的URL参数中。例子:per_page = 50
。但是,对于Search端点,每页不能超过1000条记录。当响应超过每页的最大值时,您可以使用光标
参数,如响应中给出的。
例子:光标= MjAyMC0wNi0wNVQwMToxNTo1MC42NjZafDIwMjAtMDYtMDVUMDE6MTU6MzUuMjE4Wg = =
。
列表结果包括下一个
和以前的
响应体中的url以便于导航:
{
“数据”:[…],
“链接”:{
“以前”:“阳光/ api / /对象/查询?per_page = 10 ",
“下一个”:“阳光/ api / /对象/查询?per_page=10&cursor=MjAyMC0wNi0wOVQyMjowMjoyNC45MjFafDIwMjAtMDYtMDlUMjI6MDE6NTAuNTExWg=="
}
}
当您在搜索的第一页时,到前页的链接被设置为空。同样,当您在最后一页时,到下一页的链接被设置为空。
搜索结果第一页的例子:
{
“数据”:[…],
“链接”:{
“以前”:零,
“下一个”:“阳光/ api / /对象/查询?per_page=10&cursor=MjAyMC0wNi0wOVQyMjowMjoyNC45MjFa"
}
}
最后一页的结果示例:
{
“数据”:[…],
“链接”:{
“以前”:“阳光/ api / /对象/查询?per_page=10&cursor=MjAyMC0wNi0wOVQyMjowMjoyNC45MjFa",
“下一个”:零
}
}
允许
- 代理
参数
名字 | 类型 | 在 | 要求 | 描述 |
---|---|---|---|---|
光标 | 字符串 | 查询 | 假 | 分页光标 |
per_page | 字符串 | 查询 | 假 | 每页返回的项数从1到1000 |
代码示例
旋度
旋度https://{子域名}.亚博zendesk.com/api/sunshine/objects/query\
- d”{"查询":{美元和: [{"author": {"美元的情商": "Sidney Sheldon"}}, {"publisher": {"美元包含”:“布卢姆茨伯里派“}}]}}\
- h“application / json内容类型:- x的帖子\
- v - u{email_address}:{密码}
去
进口(
“fmt”
“输入输出”
“net/http”
)
函数主要(){
url:=“https://support.亚博zendesk.com/api/sunshine/objects/query?cursor=MjAyMC0wNi0wOVQyMjowMjoyNC45MjFafDIwMjAtMDYtMDlUMjI6MDE6NTAuNTExWg%3D%3D&per_page=1”
方法:=“职位”
要求的事情,犯错:=http。NewRequest(方法,url,零)
如果犯错! =零{
fmt。Println(犯错)
返回
}
要求的事情。头。添加(“内容类型”,“application / json”)
客户端:=&http。客户端{}
res,犯错:=客户端。做(要求的事情)
如果犯错! =零{
fmt。Println(犯错)
返回
}
推迟res。身体。关闭()
身体,犯错:=io。ReadAll(res。身体)
如果犯错! =零{
fmt。Println(犯错)
返回
}
fmt。Println(字符串(身体))
}
Java
进口com。squareup。okhttp。*;
OkHttpClient客户端=新OkHttpClient();
HttpUrl。构建器urlBuilder=HttpUrl。解析(“https://support.亚博zendesk.com/api/sunshine/objects/query”)
。newBuilder()
。addQueryParameter(“光标”,“MjAyMC0wNi0wOVQyMjowMjoyNC45MjFafDIwMjAtMDYtMDlUMjI6MDE6NTAuNTExWg = = ")
。addQueryParameter(“per_page”,“1”);
RequestBody身体=RequestBody。创建(MediaType。解析(“application / json”),
"""
""");
请求请求=新请求。构建器()
。url(urlBuilder。构建())
。方法(“职位”,身体)
。addHeader(“内容类型”,“application / json”)
。构建();
响应响应=客户端。newCall(请求)。执行();
Nodejs
varaxios=需要(“axios”);
var配置={
方法:“职位”,
url:“https://support.亚博zendesk.com/api/sunshine/objects/query”,
头:{
“内容类型”:“application / json”,
},
参数个数:{
“光标”:“MjAyMC0wNi0wOVQyMjowMjoyNC45MjFafDIwMjAtMDYtMDlUMjI6MDE6NTAuNTExWg % 3 d % 3 d”,
“per_page”:' 1 ',
},
};
axios(配置)
。然后(函数(响应){
控制台。日志(JSON。stringify(响应。数据));
})
。抓(函数(错误){
控制台。日志(错误);
});
Python
进口请求
url=“https://support.亚博zendesk.com/api/sunshine/objects/query?cursor=MjAyMC0wNi0wOVQyMjowMjoyNC45MjFafDIwMjAtMDYtMDlUMjI6MDE6NTAuNTExWg%3D%3D&per_page=1”
头={
“内容类型”:“application / json”,
}
响应=请求。请求(
“职位”,
url,
头=头
)
打印(响应。文本)
鲁比(人名)
需要“net/http”
uri=URI(“https://support.亚博zendesk.com/api/sunshine/objects/query”)
uri。查询=URI。encode_www_form(“光标”:“MjAyMC0wNi0wOVQyMjowMjoyNC45MjFafDIwMjAtMDYtMDlUMjI6MDE6NTAuNTExWg = = ",“per_page”:“1”)
请求=网::HTTP::帖子。新(uri,“内容类型”:“application / json”)
响应=网::HTTP。开始uri。主机名,uri。港口,use_ssl:真正的做|http|
http。请求(请求)
结束
示例响应(年代)
200好了
//状态200 OK
{
“数据”:[
{
“属性”:{
“作者”:“西德尼·谢尔顿”,
“book_available”:真正的,
“book_price”:542,
“名称”:“世界末日阴谋”,
“出版社”:“布卢姆斯伯里出版”
},
“created_at”:“2019 - 09 - 04 - t22:00:10.191z”,
“external_id”:零,
“id”:“5 d13764c-cf5f-11e9-aa86-2f9bb45ad15c”,
“类型”:“书”,
“updated_at”:“2019 - 09 - 04 - t22:00:10.191z”
},
{
“属性”:{
“作者”:“西德尼·谢尔顿”,
“book_available”:真正的,
“book_price”:542,
“名称”:《如果明天来临》,
“出版社”:“布卢姆斯伯里出版”
},
“created_at”:“2019 - 08 - 29 - t18:47:23.556z”,
“external_id”:零,
“id”:“70588682 - ca8d - 11 - e9 - 893 a - 63225 c9f1206”,
“类型”:“书”,
“updated_at”:“2019 - 08 - 29 - t18:47:23.556z”
}
]
}