我想从 DatoCMS 获取特定数据,因此需要在 GraphQL 查询中传递一个参数。问题是我收到一个错误:
GraphQL::Client::ValidationError: Type mismatch on variable $id and argument eq (String! / ItemId)
Run Code Online (Sandbox Code Playgroud)
我正在使用 rubygraphql-client gem 来提出这个请求(可能这并不重要),这是我第一次使用 Graphql。
下面是我的查询:
query($id: String!) {
allTexts(filter: {id: {eq: $id}}) {
title
isSeparateActivity
shortDescription
longDescription
text {
article
}
author
_updatedAt
_createdAt
length
}
}
Run Code Online (Sandbox Code Playgroud)
如果我更改query($id: String!)为query($id: ID!)我会收到新错误:
GraphQL::Client::ValidationError: ID isn't a defined input type (on $id)
Run Code Online (Sandbox Code Playgroud)
看起来您的查询正在使用String!,并且它告诉您它必须是ItemId。如果没有端点来测试它,看起来如果您使用此查询,它应该可以工作:
query($id: ItemId) {
allTexts(filter: {id: {eq: $id}}) {
title
isSeparateActivity
shortDescription
longDescription
text {
article
}
author
_updatedAt
_createdAt
length
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4018 次 |
| 最近记录: |