无需登录 数据私有 本地保存

GraphQL Schema 关系图浏览器 - 类型图谱展示

60
0
0
0
术语 定义 与本工具的关系
GraphQL 一种由 Facebook(现 Meta)于 2015 年发布的开源 API 查询语言和运行时环境。与传统的 REST API 不同,GraphQL 允许客户端精确指定需要获取的数据字段,避免了过度获取和不足获取的问题。GraphQL 使用强类型系统来定义 API 的数据结构,所有可用的查询和变更操作都在 Schema 中明确定义。 本工具专门针对 GraphQL 技术栈,用于可视化分析 GraphQL 服务的 Schema 定义,帮助开发者快速理解 GraphQL API 的数据模型。
Schema GraphQL Schema 是使用 SDL 编写的 API 契约文档,它定义了所有可用的类型、字段、查询、变更和订阅端点。Schema 是客户端和服务器之间的类型安全契约,确保数据查询的可靠性。一个完整的 Schema 通常包含 Query、Mutation 和 Subscription 根类型。 本工具的核心功能就是解析和可视化展示 GraphQL Schema 的完整结构,帮助开发者直观理解 API 契约中的所有类型和关系。
SDL (Schema Definition Language) GraphQL 的模式定义语言,是一种用于描述 GraphQL Schema 的声明式文本格式。SDL 使用简洁的语法定义类型系统,支持注解、描述字符串和各种类型修饰符。SDL 是一种与具体编程语言无关的 Schema 描述方式。 本工具接受 SDL 格式的文本输入,内置 SDL 解析器将文本转换为内部类型图谱数据结构。用户只需粘贴 SDL 文本即可生成可视化图谱。
Object Type GraphQL 中最常用的类型,表示可返回的数据对象。对象类型包含一组命名字段,每个字段都有对应的类型。例如 type User { id: ID!, name: String! } 定义了一个包含 id 和 name 字段的用户类型。对象类型是构建 GraphQL API 的基础构建块。 图谱中以蓝色节点呈现对象类型,本工具会解析对象类型的所有字段引用关系并在图谱中以连线展示数据依赖关系。
Interface GraphQL 接口是一种抽象类型,定义了一组字段规范,其他类型可以通过 implements 关键字实现该接口。实现接口的类型必须包含接口定义的所有字段。接口支持多实现,一个类型可以同时实现多个接口。 图谱中以绿色节点呈现接口类型,implements 关系会以特殊连线标注,帮助开发者快速查看继承层次和多态结构。
Union 联合类型是一种组合类型,表示一个字段可以返回多种不同类型中的一种。联合类型中的成员类型不需要有共同字段,使用 union 关键字定义。联合类型常用于搜索结果或通知等可能返回多种数据的场景。 图谱中以橙色节点呈现联合类型,联合成员关系通过连线连接联合类型和其成员类型,清晰展示多态返回值结构。
Enum 枚举类型定义了一组命名常量值,限制字段只能取预定义的值之一。常用于表示状态码、类型分类等有限取值的场景,例如 enum Status { ACTIVE, INACTIVE, DELETED }。枚举类型在 API 文档和类型检查中提供更强的语义信息。 图谱中以紫色节点呈现枚举类型,当字段类型引用枚举时,连线连接字段所属类型和对应的枚举类型,展示约束关系。
Input Type 输入类型专门用于向 GraphQL 服务传递参数数据,通常用作 mutation 的参数定义。输入类型与对象类型语法相似,但仅支持作为输入使用,不支持循环引用。输入类型使用 input 关键字定义。 图谱中以红色节点呈现输入类型,便于区分输出类型和输入类型,避免混淆数据流方向和参数传递关系。
Scalar 标量类型是 GraphQL 类型系统中的叶子节点,表示不可再分的原子值。内置标量类型包括 Int、Float、String、Boolean 和 ID,开发者也可以通过 scalar 关键字定义自定义标量类型如 DateTime、JSON 等。 图谱中以灰色节点呈现标量类型。由于标量类型没有子字段,它们在图谱中通常作为终端节点出现,表示数据的最终值类型。
Field Reference 当一个对象类型的字段类型指向另一个类型时,就形成了字段引用关系。例如 User 类型中 posts: [Post!]! 字段引用了 Post 类型。字段引用是 GraphQL Schema 中最基本的关系类型,构成了数据模型间的导航路径。 本工具的图谱通过连线直观展示字段引用关系,帮助开发者追踪数据模型间的依赖路径和 API 查询时的数据加载链路。
Nullability GraphQL 类型系统中的可空性修饰,感叹号 (!) 表示该类型非空,没有感叹号则表示该类型可空(可能返回 null)。数组类型和嵌套类型同样适用此规则。正确的可空性标注对于 API 的可靠性至关重要。 本工具在类型详情面板中展示字段的可空性信息,帮助开发者了解哪些字段可能返回空值,从而在客户端做相应的容错处理。
Introspection GraphQL 提供的内省机制允许客户端查询 Schema 本身的元数据信息,例如获取所有可用类型、字段定义和指令等。许多 GraphQL 工具利用内省功能从运行中的服务获取 Schema,通过发送特殊的 Introspection Query 实现。 开发者可以使用内省工具从服务端点下载 Schema,然后粘贴到本工具中进行可视化分析,是获取 SDL 内容的常用方式之一。