GraphQL 查询支持
GraphQL 是一种用于 API 的查询语言,也是一个运行时,可以使用现有数据来满足这些查询。它使用户能够精确地请求他们需要的内容,不多也不少。
枚举
枚举表示字段的可能值集合。
例如,Node
对象有一个名为 status
的字段。状态是一个枚举(具体来说,是 Status
类型),因为它可以是 UP
、DRAINING
或 UNAVAILABLE
。
标量
标量是原始值:Int
、Float
、String
、Boolean
或 ID
。
当调用 GraphQL API 时,您必须指定嵌套的子字段,直到仅返回标量为止。
模式结构
Grid 模式的结构如下:
{
session(id: "<session-id>") : {
id,
capabilities,
startTime,
uri,
nodeId,
nodeUri,
sessionDurationMillis
slot : {
id,
stereotype,
lastStarted
}
}
grid: {
uri,
totalSlots,
nodeCount,
maxSession,
sessionCount,
version,
sessionQueueSize
}
sessionsInfo: {
sessionQueueRequests,
sessions: [
{
id,
capabilities,
startTime,
uri,
nodeId,
nodeUri,
sessionDurationMillis
slot : {
id,
stereotype,
lastStarted
}
}
]
}
nodesInfo: {
nodes : [
{
id,
uri,
status,
maxSession,
slotCount,
sessions: [
{
id,
capabilities,
startTime,
uri,
nodeId,
nodeUri,
sessionDurationMillis
slot : {
id,
stereotype,
lastStarted
}
}
],
sessionCount,
stereotypes,
version,
osInfo: {
arch,
name,
version
}
}
]
}
}
查询 GraphQL
查询 GraphQL 的最佳方法是使用 curl
请求。查询被解释为 JSON。确保正确转义双引号,以避免出现意外错误。GraphQL 允许您仅获取所需的数据,不多也不少。
下面给出一些示例 GraphQL 查询。您可以根据自己的喜好构建自己的查询。
查询 Grid 中 maxSession
和 sessionCount
的数量
curl -X POST -H "Content-Type: application/json" --data '{"query": "{ grid { maxSession, sessionCount } }"}' -s <LINK_TO_GRAPHQL_ENDPOINT>
通常,在本地计算机上,<LINK_TO_GRAPHQL_ENDPOINT>
将是 http://localhost:4444/graphql
查询会话、节点和 Grid 的所有详细信息
curl -X POST -H "Content-Type: application/json" --data '{"query":"{ grid { uri, maxSession, sessionCount }, nodesInfo { nodes { id, uri, status, sessions { id, capabilities, startTime, uri, nodeId, nodeUri, sessionDurationMillis, slot { id, stereotype, lastStarted } }, slotCount, sessionCount }} }"}' -s <LINK_TO_GRAPHQL_ENDPOINT>
查询以获取 Grid 中当前的会话计数
curl -X POST -H "Content-Type: application/json" --data '{"query":"{ grid { sessionCount } }"}' -s <LINK_TO_GRAPHQL_ENDPOINT>
查询以获取 Grid 中的最大会话计数
curl -X POST -H "Content-Type: application/json" --data '{"query":"{ grid { maxSession } }"}' -s <LINK_TO_GRAPHQL_ENDPOINT>
查询以获取 Grid 中所有节点的所有会话详细信息
curl -X POST -H "Content-Type: application/json" --data '{"query":"{ sessionsInfo { sessions { id, capabilities, startTime, uri, nodeId, nodeId, sessionDurationMillis } } }"}' -s <LINK_TO_GRAPHQL_ENDPOINT>
查询以获取 Grid 中每个节点中所有会话的槽信息
curl -X POST -H "Content-Type: application/json" --data '{"query":"{ sessionsInfo { sessions { id, slot { id, stereotype, lastStarted } } } }"}' -s <LINK_TO_GRAPHQL_ENDPOINT>
查询以获取给定会话的会话信息
curl -X POST -H "Content-Type: application/json" --data '{"query":"{ session (id: \"<session-id>\") { id, capabilities, startTime, uri, nodeId, nodeUri, sessionDurationMillis, slot { id, stereotype, lastStarted } } } "}' -s <LINK_TO_GRAPHQL_ENDPOINT>
查询 Grid 中每个节点的功能
curl -X POST -H "Content-Type: application/json" --data '{"query": "{ nodesInfo { nodes { stereotypes } } }"}' -s <LINK_TO_GRAPHQL_ENDPOINT>
查询 Grid 中每个节点的状态
curl -X POST -H "Content-Type: application/json" --data '{"query": "{ nodesInfo { nodes { status } } }"}' -s <LINK_TO_GRAPHQL_ENDPOINT>
查询每个节点和 Grid 的 URI
curl -X POST -H "Content-Type: application/json" --data '{"query": "{ nodesInfo { nodes { uri } } }"}' -s <LINK_TO_GRAPHQL_ENDPOINT>
查询以获取新会话队列中的当前请求
curl -X POST -H "Content-Type: application/json" --data '{"query":"{ sessionsInfo { sessionQueueRequests } }"}' -s <LINK_TO_GRAPHQL_ENDPOINT>
查询以获取新会话队列的大小
curl -X POST -H "Content-Type: application/json" --data '{"query":"{ grid { sessionQueueSize } }"}' -s <LINK_TO_GRAPHQL_ENDPOINT>