GraphQL

GraphQL と CQRS

C# で GraphQL.NET を使って GraphQL API のサンプルをいくつか書いてみたわけだけど、 クエリのリゾルバは Entity Framework Core の DbContext を使ってデータを取得するように実装するのが、開発効率考えると現状一番良さそう。クエリはネストできるし、…

GraphQL.NET の DataLoader

GraphQL でネストしたデータを取得するクエリを発行するとき、 N+1 問題を回避するために、 ネストしたデータの先読み込みか遅延読み込みを行う必要がある。 先読み込みの場合は、クエリのリゾルバ内で Entity Framework Core の Include を使って実装できる…

GraphQL.NET でのページネーション

GraphQL でコレクションデータの取得やページネーションを実現する場合、 Relay 由来の Connection や Edge といったインタフェースを定義するのが定石になっているみたい。 GraphQL.NET はそれらをサポートしていて、ConnectionType や EdgeType といった型…

GraphQL Server で GraphQL.EntityFramework を使う

ASP.NET Core 用の GraphQL Server を使うことで、 ASP.NET Core プロジェクトに GraphQL API を実装するのが楽になりそうだった。 tnakamura.hatenablog.com ただ、ASP.NET Core MVC でエンドポイントを自作する必要はなくなるけど、resolver は依然書く必…

ASP.NET Core 用 GraphQL Server 実装

ASP.NET Core MVC を使って GraphQL API のエンドポイントを実装してきたけど、ASP.NET Core 用の GraphQL Server 実装が存在することを今更知った。 www.nuget.org 気分は某CMの松重豊。「それさぁ、早くいってよぉ~」って感じだ。 いやまぁ、ちゃんと調べ…

ASP.NET Core で GraphQL API の Mutation を実装する

以前、ASP.NET Core で GraphQL API のサンプルを実装してみた。 tnakamura.hatenablog.com 当時必要だったのはクエリだけだったので、ミューテーションは後回しにしていたけど、 とうとうミューテーションが必要になってしまった。 真面目に GraphQL API を…

ASP.NET Core と Entity Framework Core を使った GraphQL API の実装が楽になるかもしれないライブラリ GraphQL.EntityFramework

先日 ASP.NET Core で GraphQL API を実装してみた。 tnakamura.hatenablog.com データベースから Entity Framework Core を使ってデータを取得する部分は自前で書いたわけだが、なかなか面倒だったのでなんとかしたいところ。 例えば Ruby だと graphql-rub…

ASP.NET Core で GraphQL API

GraphQL API が必要になったので、ASP.NET Core で実装できるか試してみた。ライブラリは現状 GraphQL 一択。 www.nuget.org GraphiQL っていう、GraphQL を試すのに便利な Web UI があるので、それも利用した。ASP.NET Core のミドルウェアを使えば組み込む…