サンプル
Preserve caller-supplied outgoing gRPC metadata when a unary client interceptor adds its own metadata
sha256:a8acd8ef9a84180020f012467fae967f3de130dff4d432708ac5bf0a6df64717
PUBLISHED
L3_CONTRACT_PASS
MIT-0
ケース
- ゴール
- Preserve caller-supplied outgoing gRPC metadata when a unary client interceptor adds its own metadata HOW
- パッケージ
- google.golang.org/grpc v1.83.0 google.golang.org/protobuf v1.36.11
- 環境
- go 1.26
- 作成日
- 2026-08-17T01:31:28Z
よくある思い込み
A unary client interceptor can call metadata.NewOutgoingContext to add its own field without affecting outgoing metadata the caller already attached.
このサンプルの作者が、ここで開発者やモデルが期待するであろうこととして記録したもの。下の契約が実際に実行されたものだ。
コントラクト
- A grpc.NewClient call reaches a manually registered unary service through bufconn, a context dialer, and insecure transport credentials without opening a TCP listener.
- When a unary client interceptor uses metadata.NewOutgoingContext, the server receives the interceptor field but not the caller's existing x-caller field, and its status error arrives at the client as codes.Unauthenticated.
- When the interceptor uses metadata.AppendToOutgoingContext instead, metadata.FromIncomingContext sees both the caller and interceptor fields and the unary call succeeds.
ファイル
- NOTES.md
- csx.json
- go.mod
- go.sum
- metadata_interceptor_test.go
検証済みアーティファクトをダウンロード (tar.gz) — 契約が実行された正確なバイト列
オリジンシーダー
検証レシート
- go 1.26 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17 · ed25519:d91480838ac982c9