Skip to content

Commit 8802c84

Browse files
feat: Enable REST transport for most of Java and Go clients (#262)
- [ ] 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 ae57e7e commit 8802c84

File tree

82 files changed

+6217
-11
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+6217
-11
lines changed

java-api-gateway/google-cloud-api-gateway/pom.xml

+16
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-api-gateway/google-cloud-api-gateway/src/main/java/com/google/cloud/apigateway/v1/ApiGatewayServiceClient.java

+33-5
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.google.api.core.ApiFuture;
2020
import com.google.api.core.ApiFutures;
2121
import com.google.api.gax.core.BackgroundResource;
22+
import com.google.api.gax.httpjson.longrunning.OperationsClient;
2223
import com.google.api.gax.longrunning.OperationFuture;
2324
import com.google.api.gax.paging.AbstractFixedSizeCollection;
2425
import com.google.api.gax.paging.AbstractPage;
@@ -30,7 +31,6 @@
3031
import com.google.cloud.apigateway.v1.stub.ApiGatewayServiceStubSettings;
3132
import com.google.common.util.concurrent.MoreExecutors;
3233
import com.google.longrunning.Operation;
33-
import com.google.longrunning.OperationsClient;
3434
import com.google.protobuf.Empty;
3535
import com.google.protobuf.FieldMask;
3636
import java.io.IOException;
@@ -105,13 +105,29 @@
105105
* ApiGatewayServiceClient.create(apiGatewayServiceSettings);
106106
* }</pre>
107107
*
108+
* <p>To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
109+
* the wire:
110+
*
111+
* <pre>{@code
112+
* // This snippet has been automatically generated for illustrative purposes only.
113+
* // It may require modifications to work in your environment.
114+
* ApiGatewayServiceSettings apiGatewayServiceSettings =
115+
* ApiGatewayServiceSettings.newBuilder()
116+
* .setTransportChannelProvider(
117+
* ApiGatewayServiceSettings.defaultHttpJsonTransportProviderBuilder().build())
118+
* .build();
119+
* ApiGatewayServiceClient apiGatewayServiceClient =
120+
* ApiGatewayServiceClient.create(apiGatewayServiceSettings);
121+
* }</pre>
122+
*
108123
* <p>Please refer to the GitHub repository's samples for more quickstart code snippets.
109124
*/
110125
@Generated("by gapic-generator-java")
111126
public class ApiGatewayServiceClient implements BackgroundResource {
112127
private final ApiGatewayServiceSettings settings;
113128
private final ApiGatewayServiceStub stub;
114-
private final OperationsClient operationsClient;
129+
private final OperationsClient httpJsonOperationsClient;
130+
private final com.google.longrunning.OperationsClient operationsClient;
115131

116132
/** Constructs an instance of ApiGatewayServiceClient with default settings. */
117133
public static final ApiGatewayServiceClient create() throws IOException {
@@ -143,13 +159,17 @@ public static final ApiGatewayServiceClient create(ApiGatewayServiceStub stub) {
143159
protected ApiGatewayServiceClient(ApiGatewayServiceSettings settings) throws IOException {
144160
this.settings = settings;
145161
this.stub = ((ApiGatewayServiceStubSettings) settings.getStubSettings()).createStub();
146-
this.operationsClient = OperationsClient.create(this.stub.getOperationsStub());
162+
this.operationsClient =
163+
com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub());
164+
this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub());
147165
}
148166

149167
protected ApiGatewayServiceClient(ApiGatewayServiceStub stub) {
150168
this.settings = null;
151169
this.stub = stub;
152-
this.operationsClient = OperationsClient.create(this.stub.getOperationsStub());
170+
this.operationsClient =
171+
com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub());
172+
this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub());
153173
}
154174

155175
public final ApiGatewayServiceSettings getSettings() {
@@ -164,10 +184,18 @@ public ApiGatewayServiceStub getStub() {
164184
* Returns the OperationsClient that can be used to query the status of a long-running operation
165185
* returned by another API method call.
166186
*/
167-
public final OperationsClient getOperationsClient() {
187+
public final com.google.longrunning.OperationsClient getOperationsClient() {
168188
return operationsClient;
169189
}
170190

191+
/**
192+
* Returns the OperationsClient that can be used to query the status of a long-running operation
193+
* returned by another API method call.
194+
*/
195+
public final OperationsClient getHttpJsonOperationsClient() {
196+
return httpJsonOperationsClient;
197+
}
198+
171199
// AUTO-GENERATED DOCUMENTATION AND METHOD.
172200
/**
173201
* Lists Gateways in a given project and location.

java-api-gateway/google-cloud-api-gateway/src/main/java/com/google/cloud/apigateway/v1/ApiGatewayServiceSettings.java

+21-2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.google.api.gax.core.GoogleCredentialsProvider;
2626
import com.google.api.gax.core.InstantiatingExecutorProvider;
2727
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
28+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
2829
import com.google.api.gax.rpc.ApiClientHeaderProvider;
2930
import com.google.api.gax.rpc.ClientContext;
3031
import com.google.api.gax.rpc.ClientSettings;
@@ -234,11 +235,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
234235
return ApiGatewayServiceStubSettings.defaultCredentialsProviderBuilder();
235236
}
236237

237-
/** Returns a builder for the default ChannelProvider for this service. */
238+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
238239
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
239240
return ApiGatewayServiceStubSettings.defaultGrpcTransportProviderBuilder();
240241
}
241242

243+
/** Returns a builder for the default REST ChannelProvider for this service. */
244+
@BetaApi
245+
public static InstantiatingHttpJsonChannelProvider.Builder
246+
defaultHttpJsonTransportProviderBuilder() {
247+
return ApiGatewayServiceStubSettings.defaultHttpJsonTransportProviderBuilder();
248+
}
249+
242250
public static TransportChannelProvider defaultTransportChannelProvider() {
243251
return ApiGatewayServiceStubSettings.defaultTransportChannelProvider();
244252
}
@@ -248,11 +256,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
248256
return ApiGatewayServiceStubSettings.defaultApiClientHeaderProviderBuilder();
249257
}
250258

251-
/** Returns a new builder for this class. */
259+
/** Returns a new gRPC builder for this class. */
252260
public static Builder newBuilder() {
253261
return Builder.createDefault();
254262
}
255263

264+
/** Returns a new REST builder for this class. */
265+
@BetaApi
266+
public static Builder newHttpJsonBuilder() {
267+
return Builder.createHttpJsonDefault();
268+
}
269+
256270
/** Returns a new builder for this class. */
257271
public static Builder newBuilder(ClientContext clientContext) {
258272
return new Builder(clientContext);
@@ -290,6 +304,11 @@ private static Builder createDefault() {
290304
return new Builder(ApiGatewayServiceStubSettings.newBuilder());
291305
}
292306

307+
@BetaApi
308+
private static Builder createHttpJsonDefault() {
309+
return new Builder(ApiGatewayServiceStubSettings.newHttpJsonBuilder());
310+
}
311+
293312
public ApiGatewayServiceStubSettings.Builder getStubSettingsBuilder() {
294313
return ((ApiGatewayServiceStubSettings.Builder) getStubSettings());
295314
}

java-api-gateway/google-cloud-api-gateway/src/main/java/com/google/cloud/apigateway/v1/stub/ApiGatewayServiceStub.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,11 @@
6060
public abstract class ApiGatewayServiceStub implements BackgroundResource {
6161

6262
public OperationsStub getOperationsStub() {
63-
throw new UnsupportedOperationException("Not implemented: getOperationsStub()");
63+
return null;
64+
}
65+
66+
public com.google.api.gax.httpjson.longrunning.stub.OperationsStub getHttpJsonOperationsStub() {
67+
return null;
6468
}
6569

6670
public UnaryCallable<ListGatewaysRequest, ListGatewaysPagedResponse> listGatewaysPagedCallable() {

java-api-gateway/google-cloud-api-gateway/src/main/java/com/google/cloud/apigateway/v1/stub/ApiGatewayServiceStubSettings.java

+50-3
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@
3030
import com.google.api.gax.grpc.GrpcTransportChannel;
3131
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
3232
import com.google.api.gax.grpc.ProtoOperationTransformers;
33+
import com.google.api.gax.httpjson.GaxHttpJsonProperties;
34+
import com.google.api.gax.httpjson.HttpJsonTransportChannel;
35+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
3336
import com.google.api.gax.longrunning.OperationSnapshot;
3437
import com.google.api.gax.longrunning.OperationTimedPollAlgorithm;
3538
import com.google.api.gax.retrying.RetrySettings;
@@ -457,6 +460,11 @@ public ApiGatewayServiceStub createStub() throws IOException {
457460
.equals(GrpcTransportChannel.getGrpcTransportName())) {
458461
return GrpcApiGatewayServiceStub.create(this);
459462
}
463+
if (getTransportChannelProvider()
464+
.getTransportName()
465+
.equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
466+
return HttpJsonApiGatewayServiceStub.create(this);
467+
}
460468
throw new UnsupportedOperationException(
461469
String.format(
462470
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
@@ -489,30 +497,56 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
489497
.setUseJwtAccessWithScope(true);
490498
}
491499

492-
/** Returns a builder for the default ChannelProvider for this service. */
500+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
493501
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
494502
return InstantiatingGrpcChannelProvider.newBuilder()
495503
.setMaxInboundMessageSize(Integer.MAX_VALUE);
496504
}
497505

506+
/** Returns a builder for the default REST ChannelProvider for this service. */
507+
@BetaApi
508+
public static InstantiatingHttpJsonChannelProvider.Builder
509+
defaultHttpJsonTransportProviderBuilder() {
510+
return InstantiatingHttpJsonChannelProvider.newBuilder();
511+
}
512+
498513
public static TransportChannelProvider defaultTransportChannelProvider() {
499514
return defaultGrpcTransportProviderBuilder().build();
500515
}
501516

502517
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
503-
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
518+
public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
504519
return ApiClientHeaderProvider.newBuilder()
505520
.setGeneratedLibToken(
506521
"gapic", GaxProperties.getLibraryVersion(ApiGatewayServiceStubSettings.class))
507522
.setTransportToken(
508523
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
509524
}
510525

511-
/** Returns a new builder for this class. */
526+
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
527+
public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
528+
return ApiClientHeaderProvider.newBuilder()
529+
.setGeneratedLibToken(
530+
"gapic", GaxProperties.getLibraryVersion(ApiGatewayServiceStubSettings.class))
531+
.setTransportToken(
532+
GaxHttpJsonProperties.getHttpJsonTokenName(),
533+
GaxHttpJsonProperties.getHttpJsonVersion());
534+
}
535+
536+
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
537+
return ApiGatewayServiceStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
538+
}
539+
540+
/** Returns a new gRPC builder for this class. */
512541
public static Builder newBuilder() {
513542
return Builder.createDefault();
514543
}
515544

545+
/** Returns a new REST builder for this class. */
546+
public static Builder newHttpJsonBuilder() {
547+
return Builder.createHttpJsonDefault();
548+
}
549+
516550
/** Returns a new builder for this class. */
517551
public static Builder newBuilder(ClientContext clientContext) {
518552
return new Builder(clientContext);
@@ -747,6 +781,19 @@ private static Builder createDefault() {
747781
return initDefaults(builder);
748782
}
749783

784+
private static Builder createHttpJsonDefault() {
785+
Builder builder = new Builder(((ClientContext) null));
786+
787+
builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
788+
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
789+
builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
790+
builder.setEndpoint(getDefaultEndpoint());
791+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
792+
builder.setSwitchToMtlsEndpointAllowed(true);
793+
794+
return initDefaults(builder);
795+
}
796+
750797
private static Builder initDefaults(Builder builder) {
751798
builder
752799
.listGatewaysSettings()

0 commit comments

Comments
 (0)