Skip to content

Commit ab488b9

Browse files
committed
UserAgentPrefix
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.
1 parent 471a632 commit ab488b9

24 files changed

+141
-117
lines changed

google-api-go-generator/gen.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -768,14 +768,15 @@ func (a *API) GenerateCode() ([]byte, error) {
768768
pn(" client *http.Client")
769769
pn(" BasePath string // API endpoint base URL")
770770
pn(" UserAgent string // optional additional User-Agent fragment")
771+
pn(" UserAgentPrefix string // optional User-Agent prefix fragment")
771772

772773
for _, res := range a.doc.Resources {
773774
pn("\n\t%s\t*%s", resourceGoField(res, nil), resourceGoType(res))
774775
}
775776
pn("}")
776777
pn("\nfunc (s *%s) userAgent() string {", service)
777-
pn(` if s.UserAgent == "" { return googleapi.UserAgent }`)
778-
pn(` return googleapi.UserAgent + " " + s.UserAgent`)
778+
pn(` if s.UserAgent == "" && s.UserAgentPrefix == "" { return googleapi.UserAgent }`)
779+
pn(` return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)`)
779780
pn("}\n")
780781

781782
for _, res := range a.doc.Resources {

google-api-go-generator/testdata/any.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,18 +119,19 @@ func New(client *http.Client) (*Service, error) {
119119
}
120120

121121
type Service struct {
122-
client *http.Client
123-
BasePath string // API endpoint base URL
124-
UserAgent string // optional additional User-Agent fragment
122+
client *http.Client
123+
BasePath string // API endpoint base URL
124+
UserAgent string // optional additional User-Agent fragment
125+
UserAgentPrefix string // optional User-Agent prefix fragment
125126

126127
Projects *ProjectsService
127128
}
128129

129130
func (s *Service) userAgent() string {
130-
if s.UserAgent == "" {
131+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
131132
return googleapi.UserAgent
132133
}
133-
return googleapi.UserAgent + " " + s.UserAgent
134+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
134135
}
135136

136137
func NewProjectsService(s *Service) *ProjectsService {

google-api-go-generator/testdata/arrayofarray-1.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
105105
}
106106

107107
type Service struct {
108-
client *http.Client
109-
BasePath string // API endpoint base URL
110-
UserAgent string // optional additional User-Agent fragment
108+
client *http.Client
109+
BasePath string // API endpoint base URL
110+
UserAgent string // optional additional User-Agent fragment
111+
UserAgentPrefix string // optional User-Agent prefix fragment
111112
}
112113

113114
func (s *Service) userAgent() string {
114-
if s.UserAgent == "" {
115+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
115116
return googleapi.UserAgent
116117
}
117-
return googleapi.UserAgent + " " + s.UserAgent
118+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
118119
}
119120

120121
// GeoJsonMultiPolygon: Multi Polygon

google-api-go-generator/testdata/arrayofenum.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
105105
}
106106

107107
type Service struct {
108-
client *http.Client
109-
BasePath string // API endpoint base URL
110-
UserAgent string // optional additional User-Agent fragment
108+
client *http.Client
109+
BasePath string // API endpoint base URL
110+
UserAgent string // optional additional User-Agent fragment
111+
UserAgentPrefix string // optional User-Agent prefix fragment
111112
}
112113

113114
func (s *Service) userAgent() string {
114-
if s.UserAgent == "" {
115+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
115116
return googleapi.UserAgent
116117
}
117-
return googleapi.UserAgent + " " + s.UserAgent
118+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
118119
}
119120

120121
// Container: Represents a Google Tag Manager Container.

google-api-go-generator/testdata/arrayofmapofobjects.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
105105
}
106106

107107
type Service struct {
108-
client *http.Client
109-
BasePath string // API endpoint base URL
110-
UserAgent string // optional additional User-Agent fragment
108+
client *http.Client
109+
BasePath string // API endpoint base URL
110+
UserAgent string // optional additional User-Agent fragment
111+
UserAgentPrefix string // optional User-Agent prefix fragment
111112
}
112113

113114
func (s *Service) userAgent() string {
114-
if s.UserAgent == "" {
115+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
115116
return googleapi.UserAgent
116117
}
117-
return googleapi.UserAgent + " " + s.UserAgent
118+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
118119
}
119120

120121
type Analyze struct {

google-api-go-generator/testdata/arrayofmapofstrings.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
105105
}
106106

107107
type Service struct {
108-
client *http.Client
109-
BasePath string // API endpoint base URL
110-
UserAgent string // optional additional User-Agent fragment
108+
client *http.Client
109+
BasePath string // API endpoint base URL
110+
UserAgent string // optional additional User-Agent fragment
111+
UserAgentPrefix string // optional User-Agent prefix fragment
111112
}
112113

113114
func (s *Service) userAgent() string {
114-
if s.UserAgent == "" {
115+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
115116
return googleapi.UserAgent
116117
}
117-
return googleapi.UserAgent + " " + s.UserAgent
118+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
118119
}
119120

120121
type Analyze struct {

google-api-go-generator/testdata/blogger-3.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,10 @@ func New(client *http.Client) (*Service, error) {
134134
}
135135

136136
type Service struct {
137-
client *http.Client
138-
BasePath string // API endpoint base URL
139-
UserAgent string // optional additional User-Agent fragment
137+
client *http.Client
138+
BasePath string // API endpoint base URL
139+
UserAgent string // optional additional User-Agent fragment
140+
UserAgentPrefix string // optional User-Agent prefix fragment
140141

141142
BlogUserInfos *BlogUserInfosService
142143

@@ -156,10 +157,10 @@ type Service struct {
156157
}
157158

158159
func (s *Service) userAgent() string {
159-
if s.UserAgent == "" {
160+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
160161
return googleapi.UserAgent
161162
}
162-
return googleapi.UserAgent + " " + s.UserAgent
163+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
163164
}
164165

165166
func NewBlogUserInfosService(s *Service) *BlogUserInfosService {

google-api-go-generator/testdata/floats.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,16 +107,17 @@ func New(client *http.Client) (*Service, error) {
107107
}
108108

109109
type Service struct {
110-
client *http.Client
111-
BasePath string // API endpoint base URL
112-
UserAgent string // optional additional User-Agent fragment
110+
client *http.Client
111+
BasePath string // API endpoint base URL
112+
UserAgent string // optional additional User-Agent fragment
113+
UserAgentPrefix string // optional User-Agent prefix fragment
113114
}
114115

115116
func (s *Service) userAgent() string {
116-
if s.UserAgent == "" {
117+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
117118
return googleapi.UserAgent
118119
}
119-
return googleapi.UserAgent + " " + s.UserAgent
120+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
120121
}
121122

122123
// Utilization: CPU utilization policy.

google-api-go-generator/testdata/getwithoutbody.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,18 +106,19 @@ func New(client *http.Client) (*Service, error) {
106106
}
107107

108108
type Service struct {
109-
client *http.Client
110-
BasePath string // API endpoint base URL
111-
UserAgent string // optional additional User-Agent fragment
109+
client *http.Client
110+
BasePath string // API endpoint base URL
111+
UserAgent string // optional additional User-Agent fragment
112+
UserAgentPrefix string // optional User-Agent prefix fragment
112113

113114
MetricDescriptors *MetricDescriptorsService
114115
}
115116

116117
func (s *Service) userAgent() string {
117-
if s.UserAgent == "" {
118+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
118119
return googleapi.UserAgent
119120
}
120-
return googleapi.UserAgent + " " + s.UserAgent
121+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
121122
}
122123

123124
func NewMetricDescriptorsService(s *Service) *MetricDescriptorsService {

google-api-go-generator/testdata/http-body.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,18 +119,19 @@ func New(client *http.Client) (*Service, error) {
119119
}
120120

121121
type Service struct {
122-
client *http.Client
123-
BasePath string // API endpoint base URL
124-
UserAgent string // optional additional User-Agent fragment
122+
client *http.Client
123+
BasePath string // API endpoint base URL
124+
UserAgent string // optional additional User-Agent fragment
125+
UserAgentPrefix string // optional User-Agent prefix fragment
125126

126127
Projects *ProjectsService
127128
}
128129

129130
func (s *Service) userAgent() string {
130-
if s.UserAgent == "" {
131+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
131132
return googleapi.UserAgent
132133
}
133-
return googleapi.UserAgent + " " + s.UserAgent
134+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
134135
}
135136

136137
func NewProjectsService(s *Service) *ProjectsService {

google-api-go-generator/testdata/json-body.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,18 +119,19 @@ func New(client *http.Client) (*Service, error) {
119119
}
120120

121121
type Service struct {
122-
client *http.Client
123-
BasePath string // API endpoint base URL
124-
UserAgent string // optional additional User-Agent fragment
122+
client *http.Client
123+
BasePath string // API endpoint base URL
124+
UserAgent string // optional additional User-Agent fragment
125+
UserAgentPrefix string // optional User-Agent prefix fragment
125126

126127
Projects *ProjectsService
127128
}
128129

129130
func (s *Service) userAgent() string {
130-
if s.UserAgent == "" {
131+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
131132
return googleapi.UserAgent
132133
}
133-
return googleapi.UserAgent + " " + s.UserAgent
134+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
134135
}
135136

136137
func NewProjectsService(s *Service) *ProjectsService {

google-api-go-generator/testdata/mapofany.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
105105
}
106106

107107
type Service struct {
108-
client *http.Client
109-
BasePath string // API endpoint base URL
110-
UserAgent string // optional additional User-Agent fragment
108+
client *http.Client
109+
BasePath string // API endpoint base URL
110+
UserAgent string // optional additional User-Agent fragment
111+
UserAgentPrefix string // optional User-Agent prefix fragment
111112
}
112113

113114
func (s *Service) userAgent() string {
114-
if s.UserAgent == "" {
115+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
115116
return googleapi.UserAgent
116117
}
117-
return googleapi.UserAgent + " " + s.UserAgent
118+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
118119
}
119120

120121
type JsonValue interface{}

google-api-go-generator/testdata/mapofarrayofobjects.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,18 +106,19 @@ func New(client *http.Client) (*Service, error) {
106106
}
107107

108108
type Service struct {
109-
client *http.Client
110-
BasePath string // API endpoint base URL
111-
UserAgent string // optional additional User-Agent fragment
109+
client *http.Client
110+
BasePath string // API endpoint base URL
111+
UserAgent string // optional additional User-Agent fragment
112+
UserAgentPrefix string // optional User-Agent prefix fragment
112113

113114
Atlas *AtlasService
114115
}
115116

116117
func (s *Service) userAgent() string {
117-
if s.UserAgent == "" {
118+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
118119
return googleapi.UserAgent
119120
}
120-
return googleapi.UserAgent + " " + s.UserAgent
121+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
121122
}
122123

123124
func NewAtlasService(s *Service) *AtlasService {

google-api-go-generator/testdata/mapofint64strings.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
105105
}
106106

107107
type Service struct {
108-
client *http.Client
109-
BasePath string // API endpoint base URL
110-
UserAgent string // optional additional User-Agent fragment
108+
client *http.Client
109+
BasePath string // API endpoint base URL
110+
UserAgent string // optional additional User-Agent fragment
111+
UserAgentPrefix string // optional User-Agent prefix fragment
111112
}
112113

113114
func (s *Service) userAgent() string {
114-
if s.UserAgent == "" {
115+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
115116
return googleapi.UserAgent
116117
}
117-
return googleapi.UserAgent + " " + s.UserAgent
118+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
118119
}
119120

120121
type TestResultSummaryToolGroupTestSuite struct {

google-api-go-generator/testdata/mapofobjects.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,16 +105,17 @@ func New(client *http.Client) (*Service, error) {
105105
}
106106

107107
type Service struct {
108-
client *http.Client
109-
BasePath string // API endpoint base URL
110-
UserAgent string // optional additional User-Agent fragment
108+
client *http.Client
109+
BasePath string // API endpoint base URL
110+
UserAgent string // optional additional User-Agent fragment
111+
UserAgentPrefix string // optional User-Agent prefix fragment
111112
}
112113

113114
func (s *Service) userAgent() string {
114-
if s.UserAgent == "" {
115+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
115116
return googleapi.UserAgent
116117
}
117-
return googleapi.UserAgent + " " + s.UserAgent
118+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
118119
}
119120

120121
type Entity struct {

google-api-go-generator/testdata/mapofstrings-1.want

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,18 +106,19 @@ func New(client *http.Client) (*Service, error) {
106106
}
107107

108108
type Service struct {
109-
client *http.Client
110-
BasePath string // API endpoint base URL
111-
UserAgent string // optional additional User-Agent fragment
109+
client *http.Client
110+
BasePath string // API endpoint base URL
111+
UserAgent string // optional additional User-Agent fragment
112+
UserAgentPrefix string // optional User-Agent prefix fragment
112113

113114
Atlas *AtlasService
114115
}
115116

116117
func (s *Service) userAgent() string {
117-
if s.UserAgent == "" {
118+
if s.UserAgent == "" && s.UserAgentPrefix == "" {
118119
return googleapi.UserAgent
119120
}
120-
return googleapi.UserAgent + " " + s.UserAgent
121+
return strings.Trim(s.UserAgentPrefix + " " + googleapi.UserAgent + " " + s.UserAgent)
121122
}
122123

123124
func NewAtlasService(s *Service) *AtlasService {

0 commit comments

Comments
 (0)