Sar*_*aro 8 apollo graphql strapi nuxt.js
我正在使用Strapi和 Nuxt.js 来实现我的第一个 Headless CMS。我正在使用 Apollo 和 GraphQL。
我遇到了当前的错误,并且好几天都没能解决这个问题。
如果我写:
query Page($id: ID!) {
page(id: $id) {
id
slug
title
}
}
Run Code Online (Sandbox Code Playgroud)
并传递以下变量:
{
"id" : "1"
}
Run Code Online (Sandbox Code Playgroud)
我收到了正确的预期结果:
{
"data": {
"page": {
"id": "1",
"slug": "/",
"title": "Homepage"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我想不通过 ID 获取内容,而是通过我在 Strapi 中创建的名为“slug”的字段获取内容。环顾四周,似乎我应该能够执行以下操作:
query Page($slug: String!) {
page(slug: $slug) {
id
slug
title
}
}
Run Code Online (Sandbox Code Playgroud)
带变量:
{
"slug" : "/"
}
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
{
"error": {
"errors": [
{
"message": "Unknown argument \"slug\" on field \"page\" of type \"Query\".",
"locations": [
{
"line": 2,
"column": 8
}
],
"extensions": {
"code": "GRAPHQL_VALIDATION_FAILED",
"exception": {
"stacktrace": [
Run Code Online (Sandbox Code Playgroud)
......错误继续......
[UPDATE] Italo回复后,我改成:
query Pages($slug: String!) {
page(where: {slug: $slug}) {
id
slug
title
}
}
Run Code Online (Sandbox Code Playgroud)
但我现在收到以下错误:
{
"error": {
"errors": [
{
"message": "Unknown argument \"where\" on field \"page\" of type \"Query\".",
Run Code Online (Sandbox Code Playgroud)
我还注意到,如果我将“页面”更改为“页面”,我会收到一个查询,但它显示了所有页面......
我错过了什么?谢谢!
要使用主键以外的其他内容查询一个项目(并且仅使用来自 Strapi 的默认内置查询),您需要使用可用作 where 子句的过滤器:
query Pages($slug: String!) {
pages(where: {slug: $slug}) {
id
slug
title
}
}
Run Code Online (Sandbox Code Playgroud)
提示:使用http://localhost:1337/graphql 中可用的 Graphql 接口 进行测试。(如果你还没有)
| 归档时间: |
|
| 查看次数: |
3096 次 |
| 最近记录: |