Например, у меня есть это в моей схеме 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!)
, который просто выполняет один запрос, или есть недостатки этого более плоского подхода?