Пример
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