1

Prisma ベースの graphql バックエンドの構築に関する優れたチュートリアルを完了しました。ここで最初のオフセットのページネーションを実装する方法を説明しています https://www.howtographql.com/graphql-js/8-filtering-pagination-and-sorting/

今、カーソルベースのページネーションを実装する方法を考えていますか?

これが私のタイプです(チュートリアルと同じです):

type User
    implements Node {
    id: ID!
    name: String!
    email: String!
    password: String!
    links(...): [Link!]
    votes(...): [Vote!]
}

type Link
    implements Node {
    id: ID!
    createdAt: DateTime!
    description: String!
    url: String!
    postedBy(...): User
    votes(...): [Vote!]
}

遊び場で、ユーザーが作成したリンクとともにユーザー情報を照会しようとしています:

{
  user(where: {id:"cjimzqrshb3nf0c29z1p7km0j"}) {
    email
    links {
      id
      url
      description
    }
  }
}

ユーザーが作成したすべてのリンクが返されます。どうすればページネーションできますか? リンクオブジェクトにはページング情報がありませんが、linksConnection はユーザーオブジェクト内に収まりません。

4

2 に答える 2

0

次のように、Prisma でカーソル ベースのページネーションを実装できます。

{
  users{
    links(first: 10, after:"some-id") {
      description
    }
  }
}

これは、id とカーソルが同じであるため可能です。

または、次のようにオフセットベースのページネーションを使用できます。

{
  users{
    links(first: 10, skip: 30) {
      description
    }
  }
}
于 2018-06-24T13:40:46.237 に答える