如何在GraphQL中添加自定义查询?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在GraphQL中添加自定义查询?相关的知识,希望对你有一定的参考价值。

我正在使用graphQL在React中使用Strapi作为我的CMS查询MongoDB数据库。我正在使用Apollo处理GraphQL查询。我可以通过传递ID参数来获取对象,但我希望能够传递诸如名称之类的不同参数。

此作品:

{
  course(id: "5eb4821d20c80654609a2e0c") {            
    name
    description
    modules {
       title
    } 
  }
}

这不起作用:

{
  course(name: "course1") {            
    name
    description
    modules {
       title
    } 
  }
}

根据我的阅读,我需要定义一个自定义查询,但是我不确定如何执行此操作。

课程模型目前看起来像这样:

  "kind": "collectionType",
  "collectionName": "courses",
  "info": {
    "name": "Course"
  },
  "options": {
    "increments": true,
    "timestamps": true
  },
  "attributes": {
    "name": {
      "type": "string",
      "unique": true
    },
    "description": {
      "type": "richtext"
    },
    "banner": {
      "collection": "file",
      "via": "related",
      "allowedTypes": [
        "images",
        "files",
        "videos"
      ],
      "plugin": "upload",
      "required": false
    },
    "published": {
      "type": "date"
    },
    "modules": {
      "collection": "module"
    },
    "title": {
      "type": "string"
    }
  }
}

和任何帮助,将不胜感激。

答案

参考Strapi GraphQL Query API

您可以使用where过滤字段

这应该起作用:

{
  course(where: { name: "course1" }) {
    name
    description
    modules {
       title
    } 
  }
}

以上是关于如何在GraphQL中添加自定义查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 graphQL 片段中定义可选字段以进行查询

将 graphQL 片段添加到模式中,并且可用于所有查询

在 Java 的 GraphQL 查询中添加片段

无法通过 Prisma 在 GraphQL-yoga 中使用片段

你如何在 python 中处理 graphql 查询和片段?

如何在 Android 中发送带有片段的 graphql 查询