Cloudflare GraphQL API 向客户公开 70 多个 dataset。这些 dataset 代表具有非常不同数据形状的不同 Cloudflare 产品;因此,每个都有各自的 limits 配置。
虽然我们允许所有计划访问基本 dataset(如 httpRequestsAdaptiveGroups、firewallEventsAdaptive 等),但更高级计划的用户可从扩展的 dataset 集合和更宽的查询限制中受益。
除 introspection 外,用户可以使用 zone 和 account 范围均可用的 Settings node。
Settings node 将所有 zones 和 accounts 中的 dataset 作为 field。
{
viewer {
accounts(filter: { accountTag : $accountTag }) {
settings {
# any dataset(s) from accounts
}
}
zones(filter: { zoneTag : $zoneTag }) {
settings {
# any dataset(s) from zones
}
}
}
}settings node 的每个 subnode 可包含以下 field:
enabled— 显示 node 是否对请求者可用;availableFields— 显示请求者可用 field 列表。如果是嵌套 field,将返回路径,如sum_requests;maxPageSize— 检索可返回的最大记录数maxNumberOfFields— 回答该 node 的单个查询中可使用多少 field;notOlderThan— 返回查询可以读取多久以前的数据(秒数);maxDuration— 显示请求的时间范围可以有多宽。
query SampleQuery($zoneTag: string) {
viewer {
zones(filter: { zoneTag: $zoneTag }) {
settings {
firewallEventsAdaptive {
enabled
maxDuration
maxNumberOfFields
maxPageSize
notOlderThan
}
}
}
}
}{
"data": {
"viewer": {
"zones": [
{
"settings": {
"firewallEventsAdaptive": {
"enabled": true,
"maxDuration": 259200,
"maxNumberOfFields": 30,
"maxPageSize": 10000,
"notOlderThan": 2678400
}
}
}
]
}
},
"errors": null
}有关如何执行查询的更多详情,请参阅我们的快速入门指南。