flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From GitBox <...@apache.org>
Subject [GitHub] tillrohrmann commented on a change in pull request #6602: [FLINK-7551][rest] Add versioning to REST API
Date Wed, 29 Aug 2018 15:47:08 GMT
tillrohrmann commented on a change in pull request #6602:  [FLINK-7551][rest] Add versioning
to REST API
URL: https://github.com/apache/flink/pull/6602#discussion_r213729929
 
 

 ##########
 File path: flink-runtime/src/main/java/org/apache/flink/runtime/rest/RestServerEndpoint.java
 ##########
 @@ -364,22 +364,37 @@ public String getRestBaseUrl() {
 		}
 	}
 
-	private static void registerHandler(Router router, Tuple2<RestHandlerSpecification, ChannelInboundHandler>
specificationHandler) {
-		switch (specificationHandler.f0.getHttpMethod()) {
+	private static void registerHandler(Router router, Tuple2<RestHandlerSpecification, ChannelInboundHandler>
specificationHandler, Logger log) {
+		final String handlerURL = specificationHandler.f0.getTargetRestEndpointURL();
+		// setup versioned urls
+		for (final RestAPIVersion supportedVersion : specificationHandler.f0.getSupportedAPIVersions())
{
+			final String versionedHandlerURL = '/' + supportedVersion.getURLVersionPrefix() + handlerURL;
+			log.debug("Register handler {} under {}@{}.", specificationHandler.f1, specificationHandler.f0.getHttpMethod(),
versionedHandlerURL);
+			registerHandler(router, versionedHandlerURL, specificationHandler.f0.getHttpMethod(),
specificationHandler.f1);
+		}
+		// setup unversioned url for convenience and backwards compatibility
+		// this url will always point to the oldest supported version
+		// this is controlled by the order in which handler are registered
+		log.debug("Register handler {} under {}@{}.", specificationHandler.f1, specificationHandler.f0.getHttpMethod(),
handlerURL);
+		registerHandler(router, handlerURL, specificationHandler.f0.getHttpMethod(), specificationHandler.f1);
 
 Review comment:
   Shouldn't we explicitly register the legacy handlers? I think it might be a bit confusing
if we change a handler which no longer supports the legacy format and still register it here.
We could, for example introduce a legacy version `RestAPIVersion.Unversioned` which we register
without the version prefix.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

Mime
View raw message