如何在GraphQL URL中查找可用操作?

2022-02-22 00:00:00 python graphql

问题描述

请原谅我问了这么含糊的问题。我有一个URLhttp://example.com/graphql。我想知道有哪些手术可以做。有什么办法可以查清楚吗?


解决方案

GraphQL具有允许您查询其架构的introspection system。您可以构造GraphQL查询以探索其类型。

例如,要找出所有的查询和突变根字段,您可以POST将以下JSON Body设置为http://example.com/graphql,并将内容类型设置为application/json

{
   "query" : "{__schema {queryType {name fields {name}}mutationType {name fields {name}}}}"
}

或使用GET并将GraphQL查询放入查询参数query

http://example.com/graphql/?query={__schema {queryType {name fields {name}}mutationType {name fields {name}}}}

这将返回如下内容:

{
  "data": {
    "__schema": {
      "queryType": {
        "name": "Query",
        "fields": [
          {
            "name": "searchFoo"
          },
          {
            "name": "searchBar"
          }

        ]
      },
      "mutationType": {
        "name": "Mutation",
        "fields": [
          {
            "name": "createFoo"
          },
          {
            "name": "updateFoo"
          }
        ]
      }
    }
  }
但更简单的方法是使用GraphQL客户端,如<[3-1]或Insomnia或.它很可能会为您提供一个交互式UI来浏览GraphQL架构,并具有一些自动完成/提示功能来帮助您构造GraphQL查询。

相关文章