タグ

ブックマーク / shikatech.hatenablog.com (2)

  • GraphQL ページネーション Go gqlgen - matsu tech blog

    GraphQLの必須項目ページネーションの実装方法を理解する。 使用技術 Go1.13 × gqlgen v0.13.0 ページネーションとは APIのクエリを制限する方法。 返却するデータの量を制限する事ができる。 クエリの負荷を事前に計算できる。 GraphQLのページネーション GraphQLではページネーションの方針に決まりはないが、デファクトスタンダードにRelay-style cursor pagenationという方式がある。 これはFaceBookが考案し、GitHubGraphQL APIでも採用されている。 ページネーションの実装方法は自由だがデファクトスタンダードに乗っかることで使用者側の学習コストを抑えることができる。 Relay-style cursor pagenation 公式: relay.dev こちらは以下の記事の画像が大変わかりやすい 登場人物 ht

    GraphQL ページネーション Go gqlgen - matsu tech blog
  • gqlgen directive @goField と Global Object Identification - matsu tech blog

    今回はgqlgenの機能を使って Relayの仕様であるGlobal Object Identificationの実装を行なっていく。 Global Object Identificationとは GraphQLのクライアントライブラリRelayで定められたIDフィールドの実装方法。 relay.dev ざっくりとした説明は 全スキーマ間(モデル、テーブル)で一意なIDを返そうという方針。 今回の場合だと Task typeのIDを返したいので、 TASK:1 のようにグローバルでユニークなIDを返したい。 この実装をgqlgen(Go) で directive という機能を用いて実装していく。 筆者は実務でApolloClientを使用しているが、以下の理由で大変便利な為実装している。 • オブジェクトを再取得するため • Connection を通じてページングを実装するため • Mu

    gqlgen directive @goField と Global Object Identification - matsu tech blog
  • 1