grpc-gatewayでCookieをmetadataに設定しない

公開日:2018-10-14
最終更新:2018-10-24
※この記事は外部サイト(http://hikouki.hateblo.jp/entry/2018/01/24...)からのクロス投稿です

grpc-gatewayはデフォルトで、一般的なHeaderの値を、Metadataに入れてリクエストを中継します。

ただ、Cookieの値は使わない場合もあるし、 ユーザーに見えるkeyよりも、もっと意味持たせたkeyをMetadataに入れたいとかある。

そんな時は、mux作るときに、ServeMuxOptionを渡してあげれば良いです。

func run() error {
    ctx := context.Background()
    ctx, cancel := context.WithCancel(ctx)
    defer cancel()

    mux := runtime.NewServeMux(
        runtime.WithIncomingHeaderMatcher(func(key string) (string, bool) {
            if key == "Cookie" { // CookieはMetadataに設定しない。
                return "", false
            }

            return runtime.DefaultHeaderMatcher(key)
        }),
    )
    opts := []grpc.DialOption{grpc.WithInsecure()}

    // ...

    return http.ListenAndServe(":8080", mux)
}
記事が少しでもいいなと思ったらクラップを送ってみよう!
32
+1
@hikouki'の技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする