本日からGraphQLサーバーに繋ぐためのgRPCサーバーを立てていきます。
GoでgRPCサーバーを構築してみたいと考えている人に見てもらえたらいいなと思います!
はじめに
今回やること
- Goで簡単なgRPCサーバーを立てる(
今回やらないこと
- Dockerの利用
- gRPC、GraphQLの概念説明
構成
gRPCを用いるarticleサービスの部分を実装していきます。
アーキテクチャ
ディレクトリ
- article ・・・ gRPCを用いたCRUDな記事投稿サービス
- graph ・・・ gqlgenを用いたGraphQLサービス
.
├── article (今回実装する部分)
│ ├── client
| ├── pb
| ├── repository
| ├── server
| ├── service
| ├── article.proto
| └── article.sql
|
├── graph
│ ├── generated
| ├── model
| ├── server
| ├── resolver.go
| ├── schema.graphqls
| └── schema.resolvers.go
|
├── go.mod
├── go.sum
└── gqlgen.yml
自作アプリのバックエンドをRESTからgRPCに変えようと考えましたが、フロント側(TypeScript)とgRPCでやり取りするのが大変そうだと感じました。
そこで、BFF(Backend For Frontend)としてGraphQLサーバーを介入させればフロント側と容易にやり取りできるかもしれないと思い、この構成に至りました。
gRPCサーバー構築部分をBookにしようと思いました!
サンプルコード
実装したものは以下のGitHubリポジトリで公開しています。
次章予告
次は、「gRPCのスキーマ定義」をご紹介したいと思います。
以上です。
ありがとうございました。
よろしくお願いいたします。