この記事は Go Advent Calendar 2020 の20日目の記事です。
この記事は Go5 Advent Calendar 2019 の2日目の記事です。
grpc-goではログやメトリクス取得、権限チェックなど、gRPCサーバの全てのメソッドで共通して行いたい処理を interceptor で行います。
本記事では、interceptor でメソッドごとの処理を記述する方法を紹介します。
grpc-gateway は gRPC のエラーコードと HTTP のステータスコードをよしなに変換してくれますが、クライアントにエラーの理由を知らせる場合にはエラーレスポンスをカスタマイズする必要があります。
本記事では grpc-go + grpc-gateway でカスタムエラーレスポンスを返す方法について、実装例を出しながら紹介します。