GraphQL:探索不带通配符(*)的API?
我是GraphQL新手,不知道如何在没有通配符(*)的情况下探索API 我目前正在用GraphQL建立一个无头工艺CMS,我真的不知道我的数据是如何嵌套的 使用RESTAPI,我不可能只获取所有数据,因为我必须设置所有端点,因此我还必须知道所有字段名 那么,我怎样才能轻松地探索我的CMS数据结构呢 谢谢你的提示 干杯 美塞苔丝 ------编辑------- 如果我使用@simonpedro的建议:GraphQL:探索不带通配符(*)的API?,graphql,craftcms,headless-cms,Graphql,Craftcms,Headless Cms,我是GraphQL新手,不知道如何在没有通配符(*)的情况下探索API 我目前正在用GraphQL建立一个无头工艺CMS,我真的不知道我的数据是如何嵌套的 使用RESTAPI,我不可能只获取所有数据,因为我必须设置所有端点,因此我还必须知道所有字段名 那么,我怎样才能轻松地探索我的CMS数据结构呢 谢谢你的提示 干杯 美塞苔丝 ------编辑------- 如果我使用@simonpedro的建议: { __schema { types { name kind
{
__schema {
types {
name
kind
fields {
name
}
}
}
}
我可以看到很多类型(?)/字段(。。。
例如,我看到:
{
"name": "FlexibleContentTeaser",
"kind": "OBJECT",
"fields": [
{
"name": "id"
},
{
"name": "enabled"
},
{
"name": "teaserTitle"
},
{
"name": "text"
},
{
"name": "teaserLink"
},
{
"name": "teaserLinkConnection"
}
]
但现在我想知道一个挑逗链接是如何构建的。
不知怎的,我发现了streamerlink(它是一个类型为条目的字段,我可以在这里链接到另一个页面)的属性是url
&title
但是我如何设置查询以探索striserlink
中可用的属性呢
我试过各种各样的问题,但我总是遇到这样的信息:
如果有人能给我另一个指针,告诉我如何找出我可以查询的属性,我会非常高兴
谢谢你就我而言,目前还没有具有该功能的graphql实现。然而,如果您想做的是探索“数据结构”,即模式,那么您应该使用schema InstProspection,这就是我们所认为的(探索graphql模式)。例如,一个简单的graphql instrospection查询如下:
{
__schema {
types {
name
kind
fields {
name
}
}
}
}
参考资料:
-
更新以进行编辑:
我认为你想做的是:
提出这样一个问题
{
__schema {
types {
name
kind
fields {
name
type {
fields {
name
}
}
}
}
}
}
然后找到想要的类型字段,从中获取更多信息(字段)。类似这样的事情(我不知道这是否有效,只是一个想法):
const-typeflexibleContentStrater=data.\uu schema.types.find(t=>t==“flexibleContentStrater”)
const-striserlinkfield=typeflexiblecontentstriser.fields.find(f=>f.name==“striserlink”)
常量striserlinkfield=striserlinkfield.type.fields;
i、 您必须递归地遍历类型
字段。看起来很有希望。我去看看。ThxI个人更喜欢看到一个充满数据的完整API来探索它,但这肯定解决了我的问题。谢谢,不过我还有一个问题:使用您的解决方案,我只能看到根中的属性,但我想知道其中的内容。(我将编辑我的问题以获得更多的编辑功能…-->请参见上文)谢谢您进一步阐述。不幸的是,我并不真正理解这个过程。我确实进行了查询,但是我应该把JS代码放在哪里呢?我认为使用上面的查询获取数据不包含所需的字段。。。还是我错了?据我所知,您的数据对象已经包含了所有内容,还是我错了?