Skip to content

Commit

Permalink
UserAgentPrefix
Browse files Browse the repository at this point in the history
Per the RFC at https://tools.ietf.org/html/rfc2616#section-14.43, "By convention, the product tokens are listed in order of their significance for identifying the application."

Support specifying a prefix to the user agent, so that a user could specify a more significant identifier for their requests.
  • Loading branch information
kenegozi committed May 20, 2020
1 parent 471a632 commit ab488b9
Show file tree
Hide file tree
Showing 24 changed files with 141 additions and 117 deletions.
5 changes: 3 additions & 2 deletions google-api-go-generator/gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -768,14 +768,15 @@ func (a *API) GenerateCode() ([]byte, error) {
pn(" client *http.Client")
pn(" BasePath string // API endpoint base URL")
pn(" UserAgent string // optional additional User-Agent fragment")
pn(" UserAgentPrefix string // optional User-Agent prefix fragment")

for _, res := range a.doc.Resources {
pn("\n\t%s\t*%s", resourceGoField(res, nil), resourceGoType(res))
}
pn("}")
pn("\nfunc (s *%s) userAgent() string {", service)
pn(` if s.UserAgent == "" { return googleapi.UserAgent }`)
pn(` return googleapi.UserAgent + " " + s.UserAgent`)
pn(` if s.UserAgent == "" && s.UserAgentPrefix == "" { return googleapi.UserAgent }`)
pn(` return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)`)
pn("}\n")

for _, res := range a.doc.Resources {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/any.want
Original file line number Diff line number Diff line change
Expand Up @@ -119,18 +119,19 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

Projects *ProjectsService
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewProjectsService(s *Service) *ProjectsService {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/arrayofarray-1.want
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

// GeoJsonMultiPolygon: Multi Polygon
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/arrayofenum.want
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

// Container: Represents a Google Tag Manager Container.
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/arrayofmapofobjects.want
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

type Analyze struct {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/arrayofmapofstrings.want
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

type Analyze struct {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/blogger-3.want
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,10 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

BlogUserInfos *BlogUserInfosService

Expand All @@ -156,10 +157,10 @@ type Service struct {
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewBlogUserInfosService(s *Service) *BlogUserInfosService {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/floats.want
Original file line number Diff line number Diff line change
Expand Up @@ -107,16 +107,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

// Utilization: CPU utilization policy.
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/getwithoutbody.want
Original file line number Diff line number Diff line change
Expand Up @@ -106,18 +106,19 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

MetricDescriptors *MetricDescriptorsService
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewMetricDescriptorsService(s *Service) *MetricDescriptorsService {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/http-body.want
Original file line number Diff line number Diff line change
Expand Up @@ -119,18 +119,19 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

Projects *ProjectsService
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewProjectsService(s *Service) *ProjectsService {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/json-body.want
Original file line number Diff line number Diff line change
Expand Up @@ -119,18 +119,19 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

Projects *ProjectsService
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewProjectsService(s *Service) *ProjectsService {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/mapofany.want
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

type JsonValue interface{}
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/mapofarrayofobjects.want
Original file line number Diff line number Diff line change
Expand Up @@ -106,18 +106,19 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

Atlas *AtlasService
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewAtlasService(s *Service) *AtlasService {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/mapofint64strings.want
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

type TestResultSummaryToolGroupTestSuite struct {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/mapofobjects.want
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

type Entity struct {
Expand Down
11 changes: 6 additions & 5 deletions google-api-go-generator/testdata/mapofstrings-1.want
Original file line number Diff line number Diff line change
Expand Up @@ -106,18 +106,19 @@ func New(client *http.Client) (*Service, error) {
}

type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
UserAgentPrefix string // optional User-Agent prefix fragment

Atlas *AtlasService
}

func (s *Service) userAgent() string {
if s.UserAgent == "" {
if s.UserAgent == "" && s.UserAgentPrefix == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
}

func NewAtlasService(s *Service) *AtlasService {
Expand Down

0 comments on commit ab488b9

Please sign in to comment.