Мне нужно расширить лимит в 10 пунктов в ответах @connection - PullRequest
1 голос
/ 17 апреля 2019

В AWS Amplify + Appsync использовать @connection для создания соединения между таблицами очень просто.Простым примером этого является следующая таблица Task и связанная с ней Comments

type Task @model{
    id: ID!
    createdAt: String
    name: String
    comments: [Comments] @connection(name:"TaskComments", sortField: "createdAt")
    status: String
}

type Comments @model{
    id: ID!
    createdAt: String
    task: Task @connection(name:"TaskComments", sortField: "createdAt")
    taskId: String
}

, и она даже автоматически генерирует схему для вас:

type Task {
  id: ID!
  createdAt: String
  name: String
  comments(limit: Int, nextToken: String): ModelCommentsConnection
  Status: String
}


type Query {
    ///... other not-related queries omitted
  getTask(id: ID!): Task

}

Проблема заключается в том, что запросвозвращает только 10 предметов (Comments), даже если у меня есть намного больше.(Я вижу nextToken в ответе, но это другая история).Я хочу иметь возможность возвращать 20, 30 или более комментариев на начальную загрузку.

Я попытался передать limit:1000, но запрос его игнорирует.

graphql(
    gql(getTask),
    {
      options: ({match: {params: {id}}}) => ({
        variables: {id, limit:1000},
        fetchPolicy: 'cache-and-network',
      }),
      props: ({data: {getTask: task, loading}}) => ({
        task,
        loading,
      }),
    },
   ),

Этот вопрос очень похож на: Запрос AWS Amplify Graphql при @ connection

Но в моем случае я использую React + AWS Amplify.

Большое спасибо.

1 Ответ

0 голосов
/ 18 апреля 2019

Код, который Amplify генерирует для вас, является отправной точкой.Это может потребовать некоторого ограниченного редактирования.

Если вы попали в src / graphql / query.js, вы видите что-то похожее на это?

query GetTasks(id:ID!, limit:Int) {
    getTask(input: {id: $id}) {
      id
      createdAt
      name
      comments(limit: $limit) {
        items {
          id
        }
      }
      status
    }
}

Если вы не видите ограниченияв этом определении запроса вам может понадобиться добавить его.(PS - я не уверен на 100% в синтаксисе, который я использовал выше, но, надеюсь, это укажет вам правильное направление.)

...