サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
soichisumi.net
この記事は Go5 Advent Calendar 2019 の2日目の記事です。 grpc-goではログやメトリクス取得、権限チェックなど、gRPCサーバの全てのメソッドで共通して行いたい処理を interceptor で行います。 本記事では、interceptor でメソッドごとの処理を記述する方法を紹介します。 gRPC の interceptor とは gRPCが提供している、メソッドの前後に処理を行うための仕組みです。gRPCのRPCには Unary RPCとStream RPCの2種類があり、それぞれに対して interceptor が定義されています。 interceptor の定義は下記のようになっています。どちらも context、request情報、Server情報が共通で、StreamInterceptorにのみ追加で ServerStream が渡されます。 ty
Metadata, Header, Trailerとは gRPC では、リクエスト、レスポンスパラメータ以外の情報を Metadata と呼び、key-value(s) 形式で付加することができます。 Metadata には2種類あり、エラーに関する情報を Trailer に、それ以外の情報を Header に格納します。 リクエスト時にエラー情報は不要なため、リクエスト側は Header のみを、レスポンス側は Header, Trailer 両方を付加することができます。 今回扱うのはエラー情報なので、gRPCサーバでエラーの詳細を Trailer に格納し、grpc-gatewayでその内容をエラーレスポンスに変換することでエラーの詳細を返すようにします。 エラーの変換を行う関数の実装 gRPCのエラーからHTTPのエラーレスポンスの構築を行う、HTTPError 関数を実装していき
このページを最初にブックマークしてみませんか?
『soichisumi.net』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く