此页面由 AI 自动翻译。查看英文原版
舰队管理
Luxonis HubAI
高级

本页目录

  • 开始
  • 请求结构
  • 示例查询
  • 列出设备
  • 更新设备状态
  • Hub 特定边界
  • 公共接口
  • 身份验证边界
  • 模式内省
  • 实时行为
  • 模式中的核心概念
  • 后续步骤

关于 GraphQL

当您需要从自己的后端或服务器端工具调用 Luxonis Hub GraphQL 控制 API 时,请使用此页面。它解释了公共请求结构、关键的 Hub 特定边界以及在进入工作流指南或模式参考之前所需的常见模式。
跳转至:

开始

将 GraphQL 请求发送至:
Http
1https://api.cloud.luxonis.com/graphql
使用 HTTP POST 请求,并包含:
  • Content-Type: application/json
  • Authorization: Bearer <your_api_key>
对于外部集成,请使用公共的 team { ... } 接口,并将 Hub API 密钥仅保留在您的后端。如果您尚未设置身份验证,请参阅 API 密钥

请求结构

每个 GraphQL 请求都具有相同的实际结构:
  1. 操作定义,例如 querymutation,以及操作名称和可选的变量定义。
  2. 选择集,列出您想要的精确字段。
  3. 变量对象,作为 JSON 与查询一起发送,以便值与文档分开。
  4. HTTP 传输信封,包含 AuthorizationContent-Type 标头。
这是一个典型的 Luxonis Hub 请求:
JSON
1{
2  "query": "query Devices($first: Int!, $after: String) { team { devices(first: $first, after: $after) { nodes { id name status } } } }",
3  "variables": {
4    "first": 25,
5    "after": null
6  }
7}
由于 GraphQL 响应会镜像您的选择集,因此您可以仅请求工作流所需的字段,并在以后添加更多字段,而无需更改端点。

示例查询

列出设备

team { ... } 作为公共控制平面集成的根:
Graphql
1query Devices($first: Int!, $after: String) {
2  team {
3    devices(first: $first, after: $after) {
4      nodes {
5        id
6        name
7        status
8      }
9      pageInfo {
10        hasNextPage
11        endCursor
12      }
13    }
14  }
15}

更新设备状态

Mutation 用于更改控制平面状态:
Graphql
1mutation UpdateDevice($input: UpdateDeviceInput!) {
2  updateDevice(input: $input) {
3    clientMutationId
4  }
5}
模式定义了 UpdateDeviceInput 内部允许的确切字段,因此在连接生产流程之前,请使用参考页面或内省来检查当前的输入结构。

Hub 特定边界

公共接口

对于外部集成,GraphQL 控制 API 应被理解为公共的 team { ... } 接口。

身份验证边界

Hub API 密钥是仅限后端的秘密。推荐的客户集成模型是:
  1. 您的用户向您自己的前端和后端进行身份验证。
  2. 您的后端存储 Hub API 密钥。
  3. 您的后端调用 Hub GraphQL。
  4. 您的前端仅接收其所需的派生负载。

模式内省

GraphQL 内省可用。在检查类型、字段和输入结构时,请将其与官方指南和参考页面一起使用。

实时行为

GraphQL subscriptions 目前不是公共集成路径。对于控制平面工作,请使用查询和 mutation,并使用流/引导指南进行浏览器端设备或应用程序会话。

模式中的核心概念

您无需完整的 GraphQL 教程即可使用 Hub,但这些概念在模式和示例中经常出现:
  • 对象类型和字段 定义了您可以查询的资源和属性,例如 DeviceTeamApp
  • 参数和变量 允许您传递分页、过滤和输入值,而无需重写查询字符串。
  • 输入对象 对结构化的 mutation 输入进行分组,例如 UpdateDeviceInput
  • 枚举、接口和联合 描述了受约束的值和多态响应结构。
  • 连接 是使用 nodesedgespageInfo 等字段的分页模式。
如果您需要直接检查这些结构,请在 GraphQL 客户端中使用内省,或继续查看控制 API 参考页面。

后续步骤