首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GraphQL:探索不带通配符(*)的应用编程接口?

GraphQL:探索不带通配符(*)的应用编程接口?
EN

Stack Overflow用户
提问于 2019-07-23 06:13:27
回答 1查看 2.2K关注 0票数 0

我是新手,我想知道如何在没有通配符(*) (https://github.com/graphql/graphql-spec/issues/127)的情况下探索GraphQL。

我目前正在用GraphQL建立一个无头Craft CMS,我真的不知道我的数据是如何嵌套的。

事件,我没有机会获得所有的数据,因为我必须设置所有的端点,因此我还必须知道所有的字段名。

那么,我该如何轻松地探索我的CraftCMS数据结构呢?

谢谢你在这方面的任何提示。

干杯

商业

-编辑-如果我使用@simonpedro的建议:

代码语言:javascript
复制
{
  __schema {
    types {
      name
      kind
      fields {
        name
      }
    }
  }
}

我可以看到很多类型(?)/fields (?)...例如,我看到:

代码语言:javascript
复制
{
      "name": "FlexibleContentTeaser",
      "kind": "OBJECT",
      "fields": [
        {
          "name": "id"
        },
        {
          "name": "enabled"
        },
        {
          "name": "teaserTitle"
        },
        {
          "name": "text"
        },
        {
          "name": "teaserLink"
        },
        {
          "name": "teaserLinkConnection"
        }
      ]

但现在我想知道teaserLink是如何构造的。不知何故,我发现teaserLink (它是一个类型为Entries的字段,我可以在其中链接到另一个页面)具有url & title属性。

但是,我该如何设置查询来探索teaserLink中的可用属性呢

我尝试了各种查询,但我总是遇到这样的消息:

我真的很高兴,如果有人能给我另一个指针,我可以找到哪些属性,我实际上可以查询…

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-07-23 07:53:46

据我所知,目前还没有具有该功能的graphql实现。然而,如果你想要做的是探索“数据结构”,即模式,你应该使用模式实例检查,这是为此而考虑的(探索graphql模式)。例如,一个简单的graphql实例检查查询将如下所示:

代码语言:javascript
复制
{
  __schema {
    types {
      name
      kind
      fields {
        name
      }
    }
  }
}

参考资料:- https://graphql.org/learn/introspection/

更新以进行编辑:

我认为你想做的事情是这样的:

代码语言:javascript
复制
{
  __schema {
    types {
      name
      kind
      fields {
        name
        type {
          fields {
            name
          }
        }
      }
    }
  }
}

然后找到愿望类型字段以从中获取更多信息(字段)。类似这样的东西(我不知道这是否有效,只是一个想法):

代码语言:javascript
复制
const typeFlexibleContentTeaser = data.__schema.types.find(t => t === "FlexibleContentTeaser")

const teaserLinkField = typeFlexibleContentTeaser.fields.find(f => f.name === "teaserLink")

const teaserLinkField = teaserLinkField.type.fields;

也就是说,您必须递归地遍历type字段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57154385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档