package callctx

import "github.com/googleapis/gax-go/v2/callctx"

Package callctx provides helpers for storing and retrieving values out of context.Context. These values are used by our client libraries in various ways across the stack.

Index

Examples

Constants

const (
	// XGoogFieldMaskHeader is the canonical header key for the [System Parameter]
	// that specifies the response read mask. The value(s) for this header
	// must adhere to format described in [fieldmaskpb].
	//
	// [System Parameter]: https://cloud.google.com/apis/docs/system-parameters
	// [fieldmaskpb]: https://google.golang.org/protobuf/types/known/fieldmaskpb
	XGoogFieldMaskHeader = "x-goog-fieldmask"
)

Functions

func HeadersFromContext

func HeadersFromContext(ctx context.Context) map[string][]string

HeadersFromContext retrieves headers set from SetHeaders. These headers can then be cast to http.Header or metadata.MD to send along on requests.

func SetHeaders

func SetHeaders(ctx context.Context, keyvals ...string) context.Context

SetHeaders stores key value pairs in the returned context that can later be retrieved by HeadersFromContext. Values stored in this manner will automatically be retrieved by client libraries and sent as outgoing headers on all requests. keyvals should have a corresponding value for every key provided. If there is an odd number of keyvals this method will panic.

Example

Code:play 

package main

import (
	"context"
	"fmt"

	"github.com/googleapis/gax-go/v2/callctx"
)

func main() {
	ctx := context.Background()
	ctx = callctx.SetHeaders(ctx, "key", "value")

	// Send the returned context to the request you are making. Later on these
	// values will be retrieved and set on outgoing requests.

	headers := callctx.HeadersFromContext(ctx)
	fmt.Println(headers["key"][0])
}

Output:

value

Source Files

callctx.go

Version
v2.14.1 (latest)
Published
Dec 20, 2024
Platform
linux/amd64
Imports
2 packages
Last checked
2 hours ago

Tools for package owners.