Как избежать того, чтобы GraphQL делал слишком много ненужных запросов? - PullRequest
0 голосов
/ 19 октября 2019

Например, у меня есть это в моей схеме GraphQL:

type Query {
  getFolder(id: Int!): Folder
}

type FileList {
  total: Int!
  items: [File!]!
}

type Folder {
  id: Int!
  name: String!
  # What type of file does this folder contain?
  fileType: FileType!
  owner: User!
  parent_folder: Folder
  subfolders: [Folder!]!
  contents(options: SelectOptions): FileList!
  created_at: AWSTimestamp!
}

При выполнении этого запроса:

{
  getFolder(id: 1) {
    contents: {
      total
    }
  }
}

он выполнит один SQL-запрос для папки, а другойполучить содержимое папки на основе идентификатора исходной папки. Я знаю, что обычно это то, как предполагается использовать GraphQL, но кажется, что он выполняет чрезмерные запросы на серверной части. Имеет ли смысл создавать новый запрос корневого уровня, например getFolderContents(id: Int!), который просто выполняет один запрос, или есть недостатки этого более плоского подхода?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...