khenaidoo | 7d3c558 | 2021-08-11 18:09:44 -0400 | [diff] [blame] | 1 | // Copyright 2016 Michal Witkowski. All Rights Reserved. |
| 2 | // See LICENSE for licensing terms. |
| 3 | |
| 4 | /* |
| 5 | Package `metautils` provides convenience functions for dealing with gRPC metadata.MD objects inside |
| 6 | Context handlers. |
| 7 | |
| 8 | While the upstream grpc-go package contains decent functionality (see https://github.com/grpc/grpc-go/blob/master/Documentation/grpc-metadata.md) |
| 9 | they are hard to use. |
| 10 | |
| 11 | The majority of functions center around the NiceMD, which is a convenience wrapper around metadata.MD. For example |
| 12 | the following code allows you to easily extract incoming metadata (server handler) and put it into a new client context |
| 13 | metadata. |
| 14 | |
| 15 | nmd := metautils.ExtractIncoming(serverCtx).Clone(":authorization", ":custom") |
| 16 | clientCtx := nmd.Set("x-client-header", "2").Set("x-another", "3").ToOutgoing(ctx) |
| 17 | */ |
| 18 | |
| 19 | package metautils |