この記事は Go5 Advent Calendar 2019 の2日目の記事です。
grpc-goではログやメトリクス取得、権限チェックなど、gRPCサーバの全てのメソッドで共通して行いたい処理を interceptor で行います。
本記事では、interceptor でメソッドごとの処理を記述する方法を紹介します。
この記事は Go5 Advent Calendar 2019 の2日目の記事です。
grpc-goではログやメトリクス取得、権限チェックなど、gRPCサーバの全てのメソッドで共通して行いたい処理を interceptor で行います。
本記事では、interceptor でメソッドごとの処理を記述する方法を紹介します。
gRPC + Protocol Buffers でバックエンドを開発していると、他サービスや Protocol Buffers プラグインの proto ファイルの管理をしたくなる場合があります。 よくある Protocol Buffers のプラグインではリポジトリを go get してコンパイル時にパスを通すよう指示されますが、どのリビジョンの proto ファイルを使ってスキーマを定義しているのかが不明瞭になります。また、 proto ファイルの場所が散らばるのでコンパイルのコマンドも複雑になります。
本記事では、Protocol Buffers とは何かから、なぜ依存管理が必要か、依存している proto ファイルを管理するにはどうすれば良いかについて述べます。
grpc-gateway は gRPC のエラーコードと HTTP のステータスコードをよしなに変換してくれますが、クライアントにエラーの理由を知らせる場合にはエラーレスポンスをカスタマイズする必要があります。
本記事では grpc-go + grpc-gateway でカスタムエラーレスポンスを返す方法について、実装例を出しながら紹介します。
Engineering Manager / Senior Enginner @Ginco Inc.
Resume(JP): https://findy-code.io/share_profiles/x0DSDZdDMzr0u
About job offer(JP): https://www.notion.so/About-Job-Offers-e4d0d60425fc420e88de3f983ff4f933