Skip to content

Commit ce671dc

Browse files
feat: Enable REST transport for most of Java and Go clients (googleapis#181)
- [ ] Regenerate this pull request now. PiperOrigin-RevId: 456641589 Source-Link: googleapis/googleapis@8a251f5 Source-Link: https://github.com/googleapis/googleapis-gen/commit/4ca52a529cf01308d9714950edffbea3560cfbdb Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNGNhNTJhNTI5Y2YwMTMwOGQ5NzE0OTUwZWRmZmJlYTM1NjBjZmJkYiJ9
1 parent 9c7eaaa commit ce671dc

29 files changed

Lines changed: 1696 additions & 10 deletions

java-apigee-connect/google-cloud-apigee-connect/pom.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@
5858
<groupId>com.google.api</groupId>
5959
<artifactId>gax-grpc</artifactId>
6060
</dependency>
61+
<dependency>
62+
<groupId>com.google.api</groupId>
63+
<artifactId>gax-httpjson</artifactId>
64+
</dependency>
6165
<dependency>
6266
<groupId>org.threeten</groupId>
6367
<artifactId>threetenbp</artifactId>
@@ -77,12 +81,24 @@
7781
<scope>test</scope>
7882
</dependency>
7983
<!-- Need testing utility classes for generated gRPC clients tests -->
84+
<dependency>
85+
<groupId>com.google.api</groupId>
86+
<artifactId>gax</artifactId>
87+
<classifier>testlib</classifier>
88+
<scope>test</scope>
89+
</dependency>
8090
<dependency>
8191
<groupId>com.google.api</groupId>
8292
<artifactId>gax-grpc</artifactId>
8393
<classifier>testlib</classifier>
8494
<scope>test</scope>
8595
</dependency>
96+
<dependency>
97+
<groupId>com.google.api</groupId>
98+
<artifactId>gax-httpjson</artifactId>
99+
<classifier>testlib</classifier>
100+
<scope>test</scope>
101+
</dependency>
86102
</dependencies>
87103

88104
<profiles>

java-apigee-connect/google-cloud-apigee-connect/src/main/java/com/google/cloud/apigeeconnect/v1/ConnectionServiceClient.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,21 @@
101101
* ConnectionServiceClient.create(connectionServiceSettings);
102102
* }</pre>
103103
*
104+
* <p>To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
105+
* the wire:
106+
*
107+
* <pre>{@code
108+
* // This snippet has been automatically generated for illustrative purposes only.
109+
* // It may require modifications to work in your environment.
110+
* ConnectionServiceSettings connectionServiceSettings =
111+
* ConnectionServiceSettings.newBuilder()
112+
* .setTransportChannelProvider(
113+
* ConnectionServiceSettings.defaultHttpJsonTransportProviderBuilder().build())
114+
* .build();
115+
* ConnectionServiceClient connectionServiceClient =
116+
* ConnectionServiceClient.create(connectionServiceSettings);
117+
* }</pre>
118+
*
104119
* <p>Please refer to the GitHub repository's samples for more quickstart code snippets.
105120
*/
106121
@Generated("by gapic-generator-java")

java-apigee-connect/google-cloud-apigee-connect/src/main/java/com/google/cloud/apigeeconnect/v1/ConnectionServiceSettings.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.api.gax.core.GoogleCredentialsProvider;
2424
import com.google.api.gax.core.InstantiatingExecutorProvider;
2525
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
26+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
2627
import com.google.api.gax.rpc.ApiClientHeaderProvider;
2728
import com.google.api.gax.rpc.ClientContext;
2829
import com.google.api.gax.rpc.ClientSettings;
@@ -103,11 +104,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
103104
return ConnectionServiceStubSettings.defaultCredentialsProviderBuilder();
104105
}
105106

106-
/** Returns a builder for the default ChannelProvider for this service. */
107+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
107108
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
108109
return ConnectionServiceStubSettings.defaultGrpcTransportProviderBuilder();
109110
}
110111

112+
/** Returns a builder for the default REST ChannelProvider for this service. */
113+
@BetaApi
114+
public static InstantiatingHttpJsonChannelProvider.Builder
115+
defaultHttpJsonTransportProviderBuilder() {
116+
return ConnectionServiceStubSettings.defaultHttpJsonTransportProviderBuilder();
117+
}
118+
111119
public static TransportChannelProvider defaultTransportChannelProvider() {
112120
return ConnectionServiceStubSettings.defaultTransportChannelProvider();
113121
}
@@ -117,11 +125,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
117125
return ConnectionServiceStubSettings.defaultApiClientHeaderProviderBuilder();
118126
}
119127

120-
/** Returns a new builder for this class. */
128+
/** Returns a new gRPC builder for this class. */
121129
public static Builder newBuilder() {
122130
return Builder.createDefault();
123131
}
124132

133+
/** Returns a new REST builder for this class. */
134+
@BetaApi
135+
public static Builder newHttpJsonBuilder() {
136+
return Builder.createHttpJsonDefault();
137+
}
138+
125139
/** Returns a new builder for this class. */
126140
public static Builder newBuilder(ClientContext clientContext) {
127141
return new Builder(clientContext);
@@ -159,6 +173,11 @@ private static Builder createDefault() {
159173
return new Builder(ConnectionServiceStubSettings.newBuilder());
160174
}
161175

176+
@BetaApi
177+
private static Builder createHttpJsonDefault() {
178+
return new Builder(ConnectionServiceStubSettings.newHttpJsonBuilder());
179+
}
180+
162181
public ConnectionServiceStubSettings.Builder getStubSettingsBuilder() {
163182
return ((ConnectionServiceStubSettings.Builder) getStubSettings());
164183
}

java-apigee-connect/google-cloud-apigee-connect/src/main/java/com/google/cloud/apigeeconnect/v1/TetherClient.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,20 @@
102102
* TetherClient tetherClient = TetherClient.create(tetherSettings);
103103
* }</pre>
104104
*
105+
* <p>To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
106+
* the wire:
107+
*
108+
* <pre>{@code
109+
* // This snippet has been automatically generated for illustrative purposes only.
110+
* // It may require modifications to work in your environment.
111+
* TetherSettings tetherSettings =
112+
* TetherSettings.newBuilder()
113+
* .setTransportChannelProvider(
114+
* TetherSettings.defaultHttpJsonTransportProviderBuilder().build())
115+
* .build();
116+
* TetherClient tetherClient = TetherClient.create(tetherSettings);
117+
* }</pre>
118+
*
105119
* <p>Please refer to the GitHub repository's samples for more quickstart code snippets.
106120
*/
107121
@Generated("by gapic-generator-java")

java-apigee-connect/google-cloud-apigee-connect/src/main/java/com/google/cloud/apigeeconnect/v1/TetherSettings.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.google.api.gax.core.GoogleCredentialsProvider;
2222
import com.google.api.gax.core.InstantiatingExecutorProvider;
2323
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
24+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
2425
import com.google.api.gax.rpc.ApiClientHeaderProvider;
2526
import com.google.api.gax.rpc.ClientContext;
2627
import com.google.api.gax.rpc.ClientSettings;
@@ -97,11 +98,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
9798
return TetherStubSettings.defaultCredentialsProviderBuilder();
9899
}
99100

100-
/** Returns a builder for the default ChannelProvider for this service. */
101+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
101102
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
102103
return TetherStubSettings.defaultGrpcTransportProviderBuilder();
103104
}
104105

106+
/** Returns a builder for the default REST ChannelProvider for this service. */
107+
@BetaApi
108+
public static InstantiatingHttpJsonChannelProvider.Builder
109+
defaultHttpJsonTransportProviderBuilder() {
110+
return TetherStubSettings.defaultHttpJsonTransportProviderBuilder();
111+
}
112+
105113
public static TransportChannelProvider defaultTransportChannelProvider() {
106114
return TetherStubSettings.defaultTransportChannelProvider();
107115
}
@@ -111,11 +119,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
111119
return TetherStubSettings.defaultApiClientHeaderProviderBuilder();
112120
}
113121

114-
/** Returns a new builder for this class. */
122+
/** Returns a new gRPC builder for this class. */
115123
public static Builder newBuilder() {
116124
return Builder.createDefault();
117125
}
118126

127+
/** Returns a new REST builder for this class. */
128+
@BetaApi
129+
public static Builder newHttpJsonBuilder() {
130+
return Builder.createHttpJsonDefault();
131+
}
132+
119133
/** Returns a new builder for this class. */
120134
public static Builder newBuilder(ClientContext clientContext) {
121135
return new Builder(clientContext);
@@ -153,6 +167,11 @@ private static Builder createDefault() {
153167
return new Builder(TetherStubSettings.newBuilder());
154168
}
155169

170+
@BetaApi
171+
private static Builder createHttpJsonDefault() {
172+
return new Builder(TetherStubSettings.newHttpJsonBuilder());
173+
}
174+
156175
public TetherStubSettings.Builder getStubSettingsBuilder() {
157176
return ((TetherStubSettings.Builder) getStubSettings());
158177
}

java-apigee-connect/google-cloud-apigee-connect/src/main/java/com/google/cloud/apigeeconnect/v1/stub/ConnectionServiceStubSettings.java

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
import com.google.api.gax.grpc.GaxGrpcProperties;
2828
import com.google.api.gax.grpc.GrpcTransportChannel;
2929
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
30+
import com.google.api.gax.httpjson.GaxHttpJsonProperties;
31+
import com.google.api.gax.httpjson.HttpJsonTransportChannel;
32+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
3033
import com.google.api.gax.retrying.RetrySettings;
3134
import com.google.api.gax.rpc.ApiCallContext;
3235
import com.google.api.gax.rpc.ApiClientHeaderProvider;
@@ -166,6 +169,11 @@ public ConnectionServiceStub createStub() throws IOException {
166169
.equals(GrpcTransportChannel.getGrpcTransportName())) {
167170
return GrpcConnectionServiceStub.create(this);
168171
}
172+
if (getTransportChannelProvider()
173+
.getTransportName()
174+
.equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
175+
return HttpJsonConnectionServiceStub.create(this);
176+
}
169177
throw new UnsupportedOperationException(
170178
String.format(
171179
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
@@ -198,30 +206,56 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
198206
.setUseJwtAccessWithScope(true);
199207
}
200208

201-
/** Returns a builder for the default ChannelProvider for this service. */
209+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
202210
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
203211
return InstantiatingGrpcChannelProvider.newBuilder()
204212
.setMaxInboundMessageSize(Integer.MAX_VALUE);
205213
}
206214

215+
/** Returns a builder for the default REST ChannelProvider for this service. */
216+
@BetaApi
217+
public static InstantiatingHttpJsonChannelProvider.Builder
218+
defaultHttpJsonTransportProviderBuilder() {
219+
return InstantiatingHttpJsonChannelProvider.newBuilder();
220+
}
221+
207222
public static TransportChannelProvider defaultTransportChannelProvider() {
208223
return defaultGrpcTransportProviderBuilder().build();
209224
}
210225

211226
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
212-
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
227+
public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
213228
return ApiClientHeaderProvider.newBuilder()
214229
.setGeneratedLibToken(
215230
"gapic", GaxProperties.getLibraryVersion(ConnectionServiceStubSettings.class))
216231
.setTransportToken(
217232
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
218233
}
219234

220-
/** Returns a new builder for this class. */
235+
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
236+
public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
237+
return ApiClientHeaderProvider.newBuilder()
238+
.setGeneratedLibToken(
239+
"gapic", GaxProperties.getLibraryVersion(ConnectionServiceStubSettings.class))
240+
.setTransportToken(
241+
GaxHttpJsonProperties.getHttpJsonTokenName(),
242+
GaxHttpJsonProperties.getHttpJsonVersion());
243+
}
244+
245+
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
246+
return ConnectionServiceStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
247+
}
248+
249+
/** Returns a new gRPC builder for this class. */
221250
public static Builder newBuilder() {
222251
return Builder.createDefault();
223252
}
224253

254+
/** Returns a new REST builder for this class. */
255+
public static Builder newHttpJsonBuilder() {
256+
return Builder.createHttpJsonDefault();
257+
}
258+
225259
/** Returns a new builder for this class. */
226260
public static Builder newBuilder(ClientContext clientContext) {
227261
return new Builder(clientContext);
@@ -313,6 +347,19 @@ private static Builder createDefault() {
313347
return initDefaults(builder);
314348
}
315349

350+
private static Builder createHttpJsonDefault() {
351+
Builder builder = new Builder(((ClientContext) null));
352+
353+
builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
354+
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
355+
builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
356+
builder.setEndpoint(getDefaultEndpoint());
357+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
358+
builder.setSwitchToMtlsEndpointAllowed(true);
359+
360+
return initDefaults(builder);
361+
}
362+
316363
private static Builder initDefaults(Builder builder) {
317364
builder
318365
.listConnectionsSettings()

0 commit comments

Comments
 (0)