【问题标题】:Why I can't list all queries via GraphiQl introspection query?为什么我无法通过 GraphiQl 自省查询列出所有查询?
【发布时间】:2020-05-02 18:01:30
【问题描述】:

我现在正在学习 GraphiQl,并尝试列出我可以进行的所有可用查询。我运行这个:

{
  __schema {
    types {
      name
    }
  }
}

并最终获得一些模式类型,但不是全部。如果我查找右侧的文档(“文档资源管理器”),我可以看到根类型 query: Query 列出了更多查询,例如 userusers(这些未显示在我的自省查询中)。截图很少: ]3

问题:如何从查询中查看这些小写方法,例如 allUsers?例如,我无权访问文档,只能进行自省查询。

谢谢!

【问题讨论】:

    标签: graphql


    【解决方案1】:

    使用如图所示的查询,它只会为您提供对象的类型。您可以通过以下方式获取所有Query 类型的查询:

    {
      __schema {
        queryType {
          name
          fields {
            name
          }
        }
      }
    }
    

    例如,在 GitHub 的 GraphQL 上运行上述代码会得到以下响应:

    {
      "data": {
        "__schema": {
          "queryType": {
            "name": "Query",
            "fields": [
              {
                "name": "codeOfConduct"
              },
              {
                "name": "codesOfConduct"
              },
              {
                "name": "enterprise"
              },
              {
                "name": "enterpriseAdministratorInvitation"
              },
              {
                "name": "enterpriseAdministratorInvitationByToken"
              },
              {
                "name": "license"
              },
              {
                "name": "licenses"
              },
              {
                "name": "marketplaceCategories"
              },
              {
                "name": "marketplaceCategory"
              },
              {
                "name": "marketplaceListing"
              },
              {
                "name": "marketplaceListings"
              },
              {
                "name": "meta"
              },
              {
                "name": "node"
              },
              {
                "name": "nodes"
              },
              {
                "name": "organization"
              },
              {
                "name": "rateLimit"
              },
              {
                "name": "relay"
              },
              {
                "name": "repository"
              },
              {
                "name": "repositoryOwner"
              },
              {
                "name": "resource"
              },
              {
                "name": "search"
              },
              {
                "name": "securityAdvisories"
              },
              {
                "name": "securityAdvisory"
              },
              {
                "name": "securityVulnerabilities"
              },
              {
                "name": "topic"
              },
              {
                "name": "user"
              },
              {
                "name": "viewer"
              }
            ]
          }
        }
      }
    }
    

    您可以通过在 GraphiQL 的文档资源管理器中搜索 __Field 来搜索 fields 中可能需要添加到查询中的其余字段。

    【讨论】:

      猜你喜欢
      • 2019-09-30
      • 2018-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-08
      • 2020-11-12
      • 2020-03-11
      相关资源
      最近更新 更多