Skip to content

Commit c4fd938

Browse files
author
Josh
committed
Add server additions to resources
1 parent 00acf87 commit c4fd938

File tree

9 files changed

+118
-49
lines changed

9 files changed

+118
-49
lines changed

api/oapi/v1/method.pb.go

Lines changed: 39 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/oapi/v1/method.proto

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,8 @@ message MethodOptions {
6969
// The servers to add to the method. This overrides all servers defined above
7070
// for the method.
7171
repeated Server servers = 17;
72+
73+
// The servers to add to the existing server list. This will combine higher
74+
// level defined servers with the ones defined here.
75+
repeated Server add_servers = 18;
7276
}

api/oapi/v1/service.pb.go

Lines changed: 39 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/oapi/v1/service.proto

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,9 @@ message ServiceOptions {
5454
// The servers to add to the service. These are used on all routes of the
5555
// service by default and overrides the file-defined ones.
5656
repeated Server servers = 12;
57+
58+
// The servers to add to the existing server list. This will combine higher
59+
// level defined servers, ones defined in "servers", and the ones defined
60+
// here.
61+
repeated Server add_servers = 13;
5762
}

internal/generator/path.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,17 @@ func (g *Generator) addPathsToDoc(doc *openapi3.T, services []*protogen.Service)
8686
}
8787
}
8888

89+
if len(serviceOptions.AddServers) > 0 {
90+
for _, addServer := range serviceOptions.AddServers {
91+
server, err := NewServer(addServer.Url)
92+
if err != nil {
93+
return err
94+
}
95+
96+
servers = append(servers, server)
97+
}
98+
}
99+
89100
if serviceOptions.Prefix != "" {
90101
// Use service defined prefix.
91102
pathPrefix = serviceOptions.Prefix
@@ -309,6 +320,17 @@ func (g *Generator) addOperation(p addOperationParams) error {
309320
}
310321
}
311322

323+
if len(methodOptions.AddServers) > 0 {
324+
for _, addServer := range methodOptions.AddServers {
325+
server, err := NewServer(addServer.Url)
326+
if err != nil {
327+
return err
328+
}
329+
330+
servers = append(servers, server)
331+
}
332+
}
333+
312334
if methodOptions.ContentType != "" {
313335
// Use method defined content type.
314336
contentType = methodOptions.ContentType

test/method_test.proto

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ service TestService {
3030
servers {
3131
url: "test.swagger.io"
3232
}
33+
add_servers: {
34+
url: "test.added.io"
35+
}
3336
};
3437
};
3538
}

test/method_test_openapi.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ paths:
2525
$ref: '#/components/responses/default'
2626
servers:
2727
- url: https://test.swagger.io
28+
- url: https://test.added.io
2829
tags:
2930
- TestService
3031

test/service_test.proto

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ service TestService {
3434
servers {
3535
url: "api.swagger.io"
3636
}
37+
add_servers {
38+
url: "api.added.io"
39+
}
3740
x_display_name: "Test Service"
3841
x_tag_group: "Test Group"
3942
};

test/service_test_openapi.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ paths:
2222
$ref: '#/components/responses/default'
2323
servers:
2424
- url: https://api.swagger.io
25+
- url: https://api.added.io
2526
tags:
2627
- TestService
2728
/v1/TestPost:
@@ -43,6 +44,7 @@ paths:
4344
$ref: '#/components/responses/default'
4445
servers:
4546
- url: https://api.swagger.io
47+
- url: https://api.added.io
4648
tags:
4749
- TestService
4850
security: [ ]

0 commit comments

Comments
 (0)