ent.について_リゾルバ実装編

283 Views

January 18, 24

スライド概要

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

1/11 ent.について リゾルバ実装編

2.

2/11 前回のあらすじ ・グラフ構造に特化したORM、ent.の設定を開始 ・ent.の設定ファイルによって、RDBの全テーブルのフィールドと、 テーブル間の関係性を定義

3.

3/11 今回用意したテーブル構造 ・汎用なSNSを想定 ・アカウントはポストを投稿できる ・ポストには位置情報を追加できる ・ポストには「いいね」とコメントができる ・アカウント同士でフレンド関係を作れる ・特定のアカウントをミュートにできる

4.

4/11 GraphQLサーバーの流れと実装 リゾルバがクエリを受け取り、リゾルバがORMの関数を呼び出し、 ORMがSQLを発行する クライアント リゾルバ ORM(ent.) ent. + gqlgenで実装 手動で実装 DB .entのデータ モデリングで定義

5.

5/11 ent.とgqlgenの連携 gqlgen ・スキーマを定義することで、クエリ受け取りと レスポンス返却の部分を自動で実装するライブラリ ent.はデータモデルからスキーマを生成する機能があり、 そのスキーマからリゾルバを生成する流れを自動化できる gqlgenによる自動生成前に 簡単なコードを実行するように仕込む

6.

6/11 ent.とgqlgenによる自動生成後 リゾルバが自動的に作成された後、panic~ の部分を書き換えていく スキーマを追加で用意すれば、他のリゾルバも 自動で生成してくれる

7.

7/11 ent.とgormのリゾルバ記述の比較① Golangの代表的なORMであるgormでリゾルバを実装した場合と比較 全ポストを検索する記述 gorm ent.

8.

8/11 全ポスト+αの検索結果 ポストのID ポストのタイトル ポストの内容 ポストを投稿した アカウントの名前とそのフレンドの名前 レスポンス クエリ ポストにコメントした アカウントの名前とコメントの内容 ポストにいいねした アカウントの名前

9.

9/11 ent.とgormのリゾルバ記述の比較② ポストを投稿する記述の比較 gorm ent.

10.

10/11 ポストの投稿結果 クエリ レスポンス DB 投稿のデータ レスポンスしてほしいデータ

11.

11/11 ここまでのまとめ ・データモデリング完了後、次に行うのはリゾルバの実装 ・ent.のgqlgenの連携によってリゾルバの実装を自動化できる ・gormと比べ、ent.のリゾルバ実装は簡単なコードで実装できる