From 0f16a51c4440e3955b1452a6ae7521aa396d0ec8 Mon Sep 17 00:00:00 2001 From: Jacob Greenleaf Date: Thu, 23 Aug 2018 12:22:28 -0700 Subject: [PATCH] Add context to HTTP client request object --- codegen/template_bundle/template_files.go | 4 +- codegen/templates/http_client.tmpl | 2 +- codegen/test_data/clients/bar.gogen | 58 +++++++++---------- .../example-gateway/build/clients/bar/bar.go | 58 +++++++++---------- .../build/clients/contacts/contacts.go | 4 +- .../build/clients/corge-http/corge-http.go | 2 +- .../build/clients/google-now/google-now.go | 4 +- .../build/clients/multi/multi.go | 4 +- runtime/client_http_request.go | 3 + runtime/client_http_request_test.go | 12 ++-- runtime/client_http_response_test.go | 9 ++- 11 files changed, 85 insertions(+), 75 deletions(-) diff --git a/codegen/template_bundle/template_files.go b/codegen/template_bundle/template_files.go index b472da7a6..2649dd580 100644 --- a/codegen/template_bundle/template_files.go +++ b/codegen/template_bundle/template_files.go @@ -1028,7 +1028,7 @@ func (c *{{$clientName}}) {{$methodName}}( {{if .ResponseType -}} var defaultRes {{.ResponseType}} {{end -}} - req := zanzibar.NewClientHTTPRequest(c.clientID, "{{$methodName}}", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "{{$methodName}}", c.httpClient) {{if .ReqHeaderGoStatements }} {{range $index, $line := .ReqClientHeaderGoStatements -}} @@ -1203,7 +1203,7 @@ func http_clientTmpl() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "http_client.tmpl", size: 8003, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + info := bindataFileInfo{name: "http_client.tmpl", size: 8008, mode: os.FileMode(420), modTime: time.Unix(1, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/codegen/templates/http_client.tmpl b/codegen/templates/http_client.tmpl index 745dc87f9..701f53f8e 100644 --- a/codegen/templates/http_client.tmpl +++ b/codegen/templates/http_client.tmpl @@ -122,7 +122,7 @@ func (c *{{$clientName}}) {{$methodName}}( {{if .ResponseType -}} var defaultRes {{.ResponseType}} {{end -}} - req := zanzibar.NewClientHTTPRequest(c.clientID, "{{$methodName}}", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "{{$methodName}}", c.httpClient) {{if .ReqHeaderGoStatements }} {{range $index, $line := .ReqClientHeaderGoStatements -}} diff --git a/codegen/test_data/clients/bar.gogen b/codegen/test_data/clients/bar.gogen index 61236c9f6..ca79a0219 100644 --- a/codegen/test_data/clients/bar.gogen +++ b/codegen/test_data/clients/bar.gogen @@ -258,7 +258,7 @@ func (c *barClient) ArgNotStruct( headers map[string]string, r *clientsBarBar.Bar_ArgNotStruct_Args, ) (map[string]string, error) { - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgNotStruct", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgNotStruct", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/arg-not-struct-path" @@ -317,7 +317,7 @@ func (c *barClient) ArgWithHeaders( r *clientsBarBar.Bar_ArgWithHeaders_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgWithHeaders", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgWithHeaders", c.httpClient) headers["name"] = string(r.Name) headers["x-uuid"] = string(*r.UserUUID) @@ -377,7 +377,7 @@ func (c *barClient) ArgWithManyQueryParams( r *clientsBarBar.Bar_ArgWithManyQueryParams_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgWithManyQueryParams", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgWithManyQueryParams", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/argWithManyQueryParams" @@ -510,7 +510,7 @@ func (c *barClient) ArgWithNestedQueryParams( r *clientsBarBar.Bar_ArgWithNestedQueryParams_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgWithNestedQueryParams", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgWithNestedQueryParams", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/argWithNestedQueryParams" @@ -603,7 +603,7 @@ func (c *barClient) ArgWithParams( r *clientsBarBar.Bar_ArgWithParams_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgWithParams", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgWithParams", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/argWithParams" + "/" + string(r.UUID) + "/segment" + "/" + string(r.Params.UserUUID) @@ -658,7 +658,7 @@ func (c *barClient) ArgWithQueryHeader( r *clientsBarBar.Bar_ArgWithQueryHeader_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgWithQueryHeader", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgWithQueryHeader", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/argWithQueryHeader" @@ -710,7 +710,7 @@ func (c *barClient) ArgWithQueryParams( r *clientsBarBar.Bar_ArgWithQueryParams_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgWithQueryParams", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgWithQueryParams", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/argWithQueryParams" @@ -778,7 +778,7 @@ func (c *barClient) Hello( headers map[string]string, ) (string, map[string]string, error) { var defaultRes string - req := zanzibar.NewClientHTTPRequest(c.clientID, "Hello", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "Hello", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/hello" @@ -837,7 +837,7 @@ func (c *barClient) MissingArg( headers map[string]string, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "MissingArg", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "MissingArg", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/missing-arg-path" @@ -897,7 +897,7 @@ func (c *barClient) NoRequest( headers map[string]string, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "NoRequest", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "NoRequest", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/no-request-path" @@ -958,7 +958,7 @@ func (c *barClient) Normal( r *clientsBarBar.Bar_Normal_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "Normal", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "Normal", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar-path" @@ -1019,7 +1019,7 @@ func (c *barClient) NormalRecur( r *clientsBarBar.Bar_NormalRecur_Args, ) (*clientsBarBar.BarResponseRecur, map[string]string, error) { var defaultRes *clientsBarBar.BarResponseRecur - req := zanzibar.NewClientHTTPRequest(c.clientID, "NormalRecur", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "NormalRecur", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/recur" @@ -1079,7 +1079,7 @@ func (c *barClient) TooManyArgs( r *clientsBarBar.Bar_TooManyArgs_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "TooManyArgs", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "TooManyArgs", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/too-many-args-path" @@ -1148,7 +1148,7 @@ func (c *barClient) EchoBinary( r *clientsBarBar.Echo_EchoBinary_Args, ) ([]byte, map[string]string, error) { var defaultRes []byte - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoBinary", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoBinary", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/binary" @@ -1204,7 +1204,7 @@ func (c *barClient) EchoBool( r *clientsBarBar.Echo_EchoBool_Args, ) (bool, map[string]string, error) { var defaultRes bool - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoBool", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoBool", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/bool" @@ -1260,7 +1260,7 @@ func (c *barClient) EchoDouble( r *clientsBarBar.Echo_EchoDouble_Args, ) (float64, map[string]string, error) { var defaultRes float64 - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoDouble", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoDouble", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/double" @@ -1316,7 +1316,7 @@ func (c *barClient) EchoEnum( r *clientsBarBar.Echo_EchoEnum_Args, ) (clientsBarBar.Fruit, map[string]string, error) { var defaultRes clientsBarBar.Fruit - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoEnum", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoEnum", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/enum" @@ -1372,7 +1372,7 @@ func (c *barClient) EchoI16( r *clientsBarBar.Echo_EchoI16_Args, ) (int16, map[string]string, error) { var defaultRes int16 - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoI16", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoI16", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/i16" @@ -1428,7 +1428,7 @@ func (c *barClient) EchoI32( r *clientsBarBar.Echo_EchoI32_Args, ) (int32, map[string]string, error) { var defaultRes int32 - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoI32", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoI32", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/i32" @@ -1484,7 +1484,7 @@ func (c *barClient) EchoI32Map( r *clientsBarBar.Echo_EchoI32Map_Args, ) (map[int32]*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes map[int32]*clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoI32Map", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoI32Map", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/i32-map" @@ -1540,7 +1540,7 @@ func (c *barClient) EchoI64( r *clientsBarBar.Echo_EchoI64_Args, ) (int64, map[string]string, error) { var defaultRes int64 - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoI64", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoI64", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/i64" @@ -1596,7 +1596,7 @@ func (c *barClient) EchoI8( r *clientsBarBar.Echo_EchoI8_Args, ) (int8, map[string]string, error) { var defaultRes int8 - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoI8", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoI8", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/i8" @@ -1652,7 +1652,7 @@ func (c *barClient) EchoString( r *clientsBarBar.Echo_EchoString_Args, ) (string, map[string]string, error) { var defaultRes string - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoString", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoString", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/string" @@ -1708,7 +1708,7 @@ func (c *barClient) EchoStringList( r *clientsBarBar.Echo_EchoStringList_Args, ) ([]string, map[string]string, error) { var defaultRes []string - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoStringList", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoStringList", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/string-list" @@ -1764,7 +1764,7 @@ func (c *barClient) EchoStringMap( r *clientsBarBar.Echo_EchoStringMap_Args, ) (map[string]*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes map[string]*clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoStringMap", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoStringMap", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/string-map" @@ -1820,7 +1820,7 @@ func (c *barClient) EchoStringSet( r *clientsBarBar.Echo_EchoStringSet_Args, ) (map[string]struct{}, map[string]string, error) { var defaultRes map[string]struct{} - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoStringSet", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoStringSet", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/string-set" @@ -1876,7 +1876,7 @@ func (c *barClient) EchoStructList( r *clientsBarBar.Echo_EchoStructList_Args, ) ([]*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes []*clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoStructList", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoStructList", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/struct-list" @@ -1932,7 +1932,7 @@ func (c *barClient) EchoStructSet( r *clientsBarBar.Echo_EchoStructSet_Args, ) ([]*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes []*clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoStructSet", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoStructSet", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/struct-set" @@ -1988,7 +1988,7 @@ func (c *barClient) EchoTypedef( r *clientsBarBar.Echo_EchoTypedef_Args, ) (clientsBarBar.UUID, map[string]string, error) { var defaultRes clientsBarBar.UUID - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoTypedef", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoTypedef", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/typedef" diff --git a/examples/example-gateway/build/clients/bar/bar.go b/examples/example-gateway/build/clients/bar/bar.go index c929ab332..3a2c35c6c 100644 --- a/examples/example-gateway/build/clients/bar/bar.go +++ b/examples/example-gateway/build/clients/bar/bar.go @@ -258,7 +258,7 @@ func (c *barClient) ArgNotStruct( headers map[string]string, r *clientsBarBar.Bar_ArgNotStruct_Args, ) (map[string]string, error) { - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgNotStruct", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgNotStruct", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/arg-not-struct-path" @@ -317,7 +317,7 @@ func (c *barClient) ArgWithHeaders( r *clientsBarBar.Bar_ArgWithHeaders_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgWithHeaders", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgWithHeaders", c.httpClient) headers["name"] = string(r.Name) headers["x-uuid"] = string(*r.UserUUID) @@ -377,7 +377,7 @@ func (c *barClient) ArgWithManyQueryParams( r *clientsBarBar.Bar_ArgWithManyQueryParams_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgWithManyQueryParams", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgWithManyQueryParams", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/argWithManyQueryParams" @@ -510,7 +510,7 @@ func (c *barClient) ArgWithNestedQueryParams( r *clientsBarBar.Bar_ArgWithNestedQueryParams_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgWithNestedQueryParams", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgWithNestedQueryParams", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/argWithNestedQueryParams" @@ -603,7 +603,7 @@ func (c *barClient) ArgWithParams( r *clientsBarBar.Bar_ArgWithParams_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgWithParams", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgWithParams", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/argWithParams" + "/" + string(r.UUID) + "/segment" + "/" + string(r.Params.UserUUID) @@ -658,7 +658,7 @@ func (c *barClient) ArgWithQueryHeader( r *clientsBarBar.Bar_ArgWithQueryHeader_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgWithQueryHeader", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgWithQueryHeader", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/argWithQueryHeader" @@ -710,7 +710,7 @@ func (c *barClient) ArgWithQueryParams( r *clientsBarBar.Bar_ArgWithQueryParams_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "ArgWithQueryParams", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "ArgWithQueryParams", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/argWithQueryParams" @@ -778,7 +778,7 @@ func (c *barClient) Hello( headers map[string]string, ) (string, map[string]string, error) { var defaultRes string - req := zanzibar.NewClientHTTPRequest(c.clientID, "Hello", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "Hello", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/hello" @@ -837,7 +837,7 @@ func (c *barClient) MissingArg( headers map[string]string, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "MissingArg", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "MissingArg", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/missing-arg-path" @@ -897,7 +897,7 @@ func (c *barClient) NoRequest( headers map[string]string, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "NoRequest", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "NoRequest", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/no-request-path" @@ -958,7 +958,7 @@ func (c *barClient) Normal( r *clientsBarBar.Bar_Normal_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "Normal", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "Normal", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar-path" @@ -1019,7 +1019,7 @@ func (c *barClient) NormalRecur( r *clientsBarBar.Bar_NormalRecur_Args, ) (*clientsBarBar.BarResponseRecur, map[string]string, error) { var defaultRes *clientsBarBar.BarResponseRecur - req := zanzibar.NewClientHTTPRequest(c.clientID, "NormalRecur", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "NormalRecur", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/recur" @@ -1079,7 +1079,7 @@ func (c *barClient) TooManyArgs( r *clientsBarBar.Bar_TooManyArgs_Args, ) (*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes *clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "TooManyArgs", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "TooManyArgs", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/too-many-args-path" @@ -1148,7 +1148,7 @@ func (c *barClient) EchoBinary( r *clientsBarBar.Echo_EchoBinary_Args, ) ([]byte, map[string]string, error) { var defaultRes []byte - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoBinary", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoBinary", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/binary" @@ -1204,7 +1204,7 @@ func (c *barClient) EchoBool( r *clientsBarBar.Echo_EchoBool_Args, ) (bool, map[string]string, error) { var defaultRes bool - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoBool", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoBool", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/bool" @@ -1260,7 +1260,7 @@ func (c *barClient) EchoDouble( r *clientsBarBar.Echo_EchoDouble_Args, ) (float64, map[string]string, error) { var defaultRes float64 - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoDouble", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoDouble", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/double" @@ -1316,7 +1316,7 @@ func (c *barClient) EchoEnum( r *clientsBarBar.Echo_EchoEnum_Args, ) (clientsBarBar.Fruit, map[string]string, error) { var defaultRes clientsBarBar.Fruit - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoEnum", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoEnum", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/enum" @@ -1372,7 +1372,7 @@ func (c *barClient) EchoI16( r *clientsBarBar.Echo_EchoI16_Args, ) (int16, map[string]string, error) { var defaultRes int16 - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoI16", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoI16", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/i16" @@ -1428,7 +1428,7 @@ func (c *barClient) EchoI32( r *clientsBarBar.Echo_EchoI32_Args, ) (int32, map[string]string, error) { var defaultRes int32 - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoI32", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoI32", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/i32" @@ -1484,7 +1484,7 @@ func (c *barClient) EchoI32Map( r *clientsBarBar.Echo_EchoI32Map_Args, ) (map[int32]*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes map[int32]*clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoI32Map", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoI32Map", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/i32-map" @@ -1540,7 +1540,7 @@ func (c *barClient) EchoI64( r *clientsBarBar.Echo_EchoI64_Args, ) (int64, map[string]string, error) { var defaultRes int64 - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoI64", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoI64", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/i64" @@ -1596,7 +1596,7 @@ func (c *barClient) EchoI8( r *clientsBarBar.Echo_EchoI8_Args, ) (int8, map[string]string, error) { var defaultRes int8 - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoI8", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoI8", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/i8" @@ -1652,7 +1652,7 @@ func (c *barClient) EchoString( r *clientsBarBar.Echo_EchoString_Args, ) (string, map[string]string, error) { var defaultRes string - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoString", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoString", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/string" @@ -1708,7 +1708,7 @@ func (c *barClient) EchoStringList( r *clientsBarBar.Echo_EchoStringList_Args, ) ([]string, map[string]string, error) { var defaultRes []string - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoStringList", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoStringList", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/string-list" @@ -1764,7 +1764,7 @@ func (c *barClient) EchoStringMap( r *clientsBarBar.Echo_EchoStringMap_Args, ) (map[string]*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes map[string]*clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoStringMap", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoStringMap", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/string-map" @@ -1820,7 +1820,7 @@ func (c *barClient) EchoStringSet( r *clientsBarBar.Echo_EchoStringSet_Args, ) (map[string]struct{}, map[string]string, error) { var defaultRes map[string]struct{} - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoStringSet", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoStringSet", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/string-set" @@ -1876,7 +1876,7 @@ func (c *barClient) EchoStructList( r *clientsBarBar.Echo_EchoStructList_Args, ) ([]*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes []*clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoStructList", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoStructList", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/struct-list" @@ -1932,7 +1932,7 @@ func (c *barClient) EchoStructSet( r *clientsBarBar.Echo_EchoStructSet_Args, ) ([]*clientsBarBar.BarResponse, map[string]string, error) { var defaultRes []*clientsBarBar.BarResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoStructSet", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoStructSet", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/struct-set" @@ -1988,7 +1988,7 @@ func (c *barClient) EchoTypedef( r *clientsBarBar.Echo_EchoTypedef_Args, ) (clientsBarBar.UUID, map[string]string, error) { var defaultRes clientsBarBar.UUID - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoTypedef", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoTypedef", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/echo" + "/typedef" diff --git a/examples/example-gateway/build/clients/contacts/contacts.go b/examples/example-gateway/build/clients/contacts/contacts.go index c95df868f..837d80a8d 100644 --- a/examples/example-gateway/build/clients/contacts/contacts.go +++ b/examples/example-gateway/build/clients/contacts/contacts.go @@ -94,7 +94,7 @@ func (c *contactsClient) SaveContacts( r *clientsContactsContacts.SaveContactsRequest, ) (*clientsContactsContacts.SaveContactsResponse, map[string]string, error) { var defaultRes *clientsContactsContacts.SaveContactsResponse - req := zanzibar.NewClientHTTPRequest(c.clientID, "SaveContacts", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "SaveContacts", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/" + string(r.UserUUID) + "/contacts" @@ -144,7 +144,7 @@ func (c *contactsClient) TestURLURL( headers map[string]string, ) (string, map[string]string, error) { var defaultRes string - req := zanzibar.NewClientHTTPRequest(c.clientID, "TestURLURL", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "TestURLURL", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/contacts" + "/testUrl" diff --git a/examples/example-gateway/build/clients/corge-http/corge-http.go b/examples/example-gateway/build/clients/corge-http/corge-http.go index 81aad9643..859130c47 100644 --- a/examples/example-gateway/build/clients/corge-http/corge-http.go +++ b/examples/example-gateway/build/clients/corge-http/corge-http.go @@ -103,7 +103,7 @@ func (c *corgeHTTPClient) EchoString( r *clientsCorgeCorge.Corge_EchoString_Args, ) (string, map[string]string, error) { var defaultRes string - req := zanzibar.NewClientHTTPRequest(c.clientID, "EchoString", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "EchoString", c.httpClient) headers[c.callerHeader] = c.callerName headers[c.calleeHeader] = c.calleeName diff --git a/examples/example-gateway/build/clients/google-now/google-now.go b/examples/example-gateway/build/clients/google-now/google-now.go index 8431307b4..21fe1d1ea 100644 --- a/examples/example-gateway/build/clients/google-now/google-now.go +++ b/examples/example-gateway/build/clients/google-now/google-now.go @@ -93,7 +93,7 @@ func (c *googleNowClient) AddCredentials( headers map[string]string, r *clientsGooglenowGooglenow.GoogleNowService_AddCredentials_Args, ) (map[string]string, error) { - req := zanzibar.NewClientHTTPRequest(c.clientID, "AddCredentials", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "AddCredentials", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/add-credentials" @@ -146,7 +146,7 @@ func (c *googleNowClient) CheckCredentials( ctx context.Context, headers map[string]string, ) (map[string]string, error) { - req := zanzibar.NewClientHTTPRequest(c.clientID, "CheckCredentials", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "CheckCredentials", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/check-credentials" diff --git a/examples/example-gateway/build/clients/multi/multi.go b/examples/example-gateway/build/clients/multi/multi.go index 1e2cb6f8f..3189a842f 100644 --- a/examples/example-gateway/build/clients/multi/multi.go +++ b/examples/example-gateway/build/clients/multi/multi.go @@ -91,7 +91,7 @@ func (c *multiClient) HelloA( headers map[string]string, ) (string, map[string]string, error) { var defaultRes string - req := zanzibar.NewClientHTTPRequest(c.clientID, "HelloA", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "HelloA", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/multi" + "/serviceA_b" + "/hello" @@ -141,7 +141,7 @@ func (c *multiClient) HelloB( headers map[string]string, ) (string, map[string]string, error) { var defaultRes string - req := zanzibar.NewClientHTTPRequest(c.clientID, "HelloB", c.httpClient) + req := zanzibar.NewClientHTTPRequest(ctx, c.clientID, "HelloB", c.httpClient) // Generate full URL. fullURL := c.httpClient.BaseURL + "/multi" + "/serviceB_b" + "/hello" diff --git a/runtime/client_http_request.go b/runtime/client_http_request.go index eeef1d17d..58f4173a6 100644 --- a/runtime/client_http_request.go +++ b/runtime/client_http_request.go @@ -47,10 +47,12 @@ type ClientHTTPRequest struct { metrics *OutboundHTTPMetrics rawBody []byte defaultHeaders map[string]string + ctx context.Context } // NewClientHTTPRequest allocates a ClientHTTPRequest func NewClientHTTPRequest( + ctx context.Context, clientID, methodName string, client *HTTPClient, ) *ClientHTTPRequest { @@ -61,6 +63,7 @@ func NewClientHTTPRequest( Logger: client.loggers[methodName], metrics: client.metrics[methodName], defaultHeaders: client.DefaultHeaders, + ctx: ctx, } req.res = NewClientHTTPResponse(req) req.start() diff --git a/runtime/client_http_request_test.go b/runtime/client_http_request_test.go index a074d7ba8..55a7559b0 100644 --- a/runtime/client_http_request_test.go +++ b/runtime/client_http_request_test.go @@ -66,7 +66,8 @@ func TestMakingClientWriteJSONWithBadJSON(t *testing.T) { map[string]string{}, time.Second, ) - req := zanzibar.NewClientHTTPRequest("clientID", "DoStuff", client) + ctx := context.Background() + req := zanzibar.NewClientHTTPRequest(ctx, "clientID", "DoStuff", client) err = req.WriteJSON("GET", "/foo", nil, &failingJsonObj{}) assert.NotNil(t, err) @@ -100,7 +101,8 @@ func TestMakingClientWriteJSONWithBadHTTPMethod(t *testing.T) { map[string]string{}, time.Second, ) - req := zanzibar.NewClientHTTPRequest("clientID", "DoStuff", client) + ctx := context.Background() + req := zanzibar.NewClientHTTPRequest(ctx, "clientID", "DoStuff", client) err = req.WriteJSON("@INVALIDMETHOD", "/foo", nil, nil) assert.NotNil(t, err) @@ -140,7 +142,8 @@ func TestMakingClientCallWithHeaders(t *testing.T) { barClient := deps.Client.Bar client := barClient.HTTPClient() - req := zanzibar.NewClientHTTPRequest("bar", "Normal", client) + ctx := context.Background() + req := zanzibar.NewClientHTTPRequest(ctx, "bar", "Normal", client) err = req.WriteJSON( "POST", @@ -452,7 +455,8 @@ func TestInjectSpan(t *testing.T) { deps := bgateway.Dependencies.(*exampleGateway.DependenciesTree) barClient := deps.Client.Bar client := barClient.HTTPClient() - req := zanzibar.NewClientHTTPRequest("bar", "Normal", client) + ctx := context.Background() + req := zanzibar.NewClientHTTPRequest(ctx, "bar", "Normal", client) err = req.WriteJSON( "POST", client.BaseURL+"/bar-path", diff --git a/runtime/client_http_response_test.go b/runtime/client_http_response_test.go index 297aa0151..e259e9dd3 100644 --- a/runtime/client_http_response_test.go +++ b/runtime/client_http_response_test.go @@ -75,7 +75,8 @@ func TestReadAndUnmarshalNonStructBody(t *testing.T) { map[string]string{}, time.Second, ) - req := zanzibar.NewClientHTTPRequest("bar", "echo", client) + ctx := context.Background() + req := zanzibar.NewClientHTTPRequest(ctx, "bar", "echo", client) err = req.WriteJSON("POST", baseURL+"/bar/echo", nil, myJson{}) assert.NoError(t, err) @@ -131,7 +132,8 @@ func TestReadAndUnmarshalNonStructBodyUnmarshalError(t *testing.T) { map[string]string{}, time.Second, ) - req := zanzibar.NewClientHTTPRequest("bar", "echo", client) + ctx := context.Background() + req := zanzibar.NewClientHTTPRequest(ctx, "bar", "echo", client) err = req.WriteJSON("POST", baseURL+"/bar/echo", nil, myJson{}) assert.NoError(t, err) @@ -187,7 +189,8 @@ func TestUnknownStatusCode(t *testing.T) { time.Second, ) - req := zanzibar.NewClientHTTPRequest("bar", "echo", client) + ctx := context.Background() + req := zanzibar.NewClientHTTPRequest(ctx, "bar", "echo", client) err = req.WriteJSON("POST", baseURL+"/bar/echo", nil, myJson{}) assert.NoError(t, err)