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

GraphQL查询测试 - 输入端点获取Schema

13
0
0
0
GraphQL Tester
自定义请求头
Content-Type: application/json 已自动设置
Schema 浏览器
输入端点并点击"获取Schema"
响应结果
等待发送查询...
常见问题与知识点

GraphQL Introspection 是 GraphQL 规范中的一项功能,允许客户端通过发送特殊的 __schema 查询来获取 API 的完整类型系统信息。通过 Introspection,你可以了解:

  • 所有可用的查询(Query)、变更(Mutation)和订阅(Subscription)操作
  • 每个类型的字段及其参数
  • 枚举类型的可选值
  • 类型的继承关系和接口实现

注意:出于安全考虑,许多生产环境的 GraphQL API 会禁用 Introspection。如果获取失败,可能是该端点已关闭此功能。

  • 字段选择:GraphQL 只返回你明确请求的字段,不会返回多余数据
  • 嵌套查询:可以递归地请求关联对象的字段
  • 参数:字段可以接受参数进行过滤、排序、分页等操作
  • 别名:使用 alias: fieldName 语法为重命名字段
  • 片段(Fragments):使用 ...FragmentName 复用字段集合
  • 指令:@include(if:)@skip(if:) 进行条件查询

在查询中使用 $variableName 声明变量,然后在"变量"标签页中以 JSON 格式提供值:

查询:
query ($code: ID!) {
  country(code: $code) { name capital }
}

变量:
{ "code": "CN" }

变量使查询更加灵活和安全,避免字符串拼接带来的注入风险。

特性GraphQLREST
数据获取单一端点,按需获取多个端点,固定返回
过度/不足获取精确获取所需字段常见过度或不足
版本管理无需版本号,渐进演化通常使用版本号
学习曲线较陡,需学习类型系统简单直观
缓存需额外工具支持可利用HTTP缓存

  • CORS 错误:浏览器阻止跨域请求。使用支持 CORS 的端点,或通过后端代理转发请求
  • 400 Bad Request:检查查询语法是否正确,变量 JSON 是否有效
  • 401/403:需要认证。在"请求头"中添加 Authorization
  • Introspection disabled:端点禁用了内省功能,可手动查阅 API 文档
  • 字段不存在:检查 Schema 浏览器中该类型是否有此字段,注意大小写