Как добавить пользовательские запросы в GraphQL с помощью Strapi? - PullRequest
1 голос
/ 09 мая 2020

Я использую graphQL для запроса базы данных MongoDB в React, используя Strapi в качестве моей CMS. Я использую Apollo для обработки запросов GraphQL. Я могу получить свои объекты, передав аргумент идентификатора, но я хочу иметь возможность передавать разные аргументы, например имя.

Это работает:

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

Это не работают, давая ошибку "Неизвестный аргумент \" имя \ "в поле \" курс \ "типа \" Запрос \ "

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

Из того, что я прочитал, мне нужно определить настраиваемый запрос , но я не уверен, как это сделать.

Модель Course в настоящее время выглядит так:

  "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"
    }
  }
}

, и любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 09 мая 2020

Ссылаясь на Strapi GraphQL API запросов

Вы можете использовать where с запросом courses для фильтрации полей. Вы получите список курсов вместо одного курса

Это должно работать:

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