#javascript #graphql #apollo #react-apollo
#javascript #graphql #apollo #реагировать-apollo
Вопрос:
Давайте представим, что у нас есть такая схема на нашем сервере с запросом, который просто извлекает список тем на основе переданного аргумента name.
Query listTopics(
name: String!
): [Topic!]!
type Topic {
id: String!
name: String!
image: String
timeBasedFeed: String!
scoreBasedFeed: String!
aliases: [String!]!
parents: [String!]!
allAncestors: [String!]!
}
Как мы можем объявить, что запрос возвращает массив на клиенте, когда мы извлекаем данные?
Когда мы работаем с запросом, который возвращает объект и т.д. мы можем сделать следующее
import { gql, useQuery } from '@apollo/client';
const GET_DOG = gql`
query GetDog {
// Declare response fields
id
name
}
`;
Но как сделать то же самое, когда запрос возвращает массив?
Я пытался сделать это таким образом
import { gql } from '@apollo/client';
export const LIST_TOPICS_QUERY = gql`
query listTopics($name: String!) {
[
id,
name,
image,
timeBasedFeed,
storeBasedFeed,
aliases,
parents,
allAncestors
]
}
`;
К сожалению, это не работает.
Спасибо за любую информацию.
Комментарии:
1. используйте graphiql, он подскажет вам…. запрос выглядит так же, ответ будет другой формы
Ответ №1:
Нет никакой разницы в том, как вы указываете набор выбора для поля, которое возвращает один объект, и поля, которое возвращает список объектов — синтаксис идентичен, хотя форма ответа будет отличаться.