[ https://issues.apache.org/jira/browse/FLINK-21420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17287658#comment-17287658 ]
Miguel Araujo commented on FLINK-21420: --------------------------------------- Hi [~tzulitai], [~igal], I was considering opening a PR to fix this issue, here is what I would change: * Adding StatefulFunctionDataStreamBuilder.withRequestReplyNamespace (naming suggestions welcome..). ** HttpFunctionEndpointSpec already supports path templating, so this would just create one with a NamespaceTarget and a UrlPathTemplate. ** I think adding a new method to the StatefulFunctionDataStreamBuilder is better than overloading the behavior of .withRequestReplyRemoteFunction as that could be confusing. * Renaming StatefulFunctionDataStreamBuilder.requestReplyFunctions to specificTypeEndpointSpecs. * Adding StatefulFunctionDataStreamBuilder.perNamespaceEndpointSpecs. * Make SerializableHttpFunctionProvider's behavior with namespace endpoints akin to the behavior of HttpFunctionProvider. This would mean changing (overloading) the constructor to receive an additional `Map<String, HttpFunctionEndpointSpec> perNamespaceEndpointSpecs`. * Changing the build() method of StatefulFunctionDataStreamBuilder to use the new SerializableHttpFunctionProvider's constructor. WDYT? Unfortunately, I think DataStreams + Remote functions are not being tested anywhere, or at least I couldn't find a suitable test to modify. > Add path templating to the DataStream API > ----------------------------------------- > > Key: FLINK-21420 > URL: https://issues.apache.org/jira/browse/FLINK-21420 > Project: Flink > Issue Type: Improvement > Components: Stateful Functions > Reporter: Miguel Araujo > Priority: Major > > Path Template was introduced in FLINK-20264 with a new module YAML > specification being added in FLINK-20334. > However, that possibility was not added to the DataStream API. > The main problem is that RequestReplyFunctionBuilder can only receive > FunctionTypes which it then turns into FunctionTypeTarget's for the > HttpFunctionEndpointSpec builder: > {code:java} > private RequestReplyFunctionBuilder(FunctionType functionType, URI endpoint) { > this.builder = > HttpFunctionEndpointSpec.builder( > Target.functionType(functionType), new > UrlPathTemplate(endpoint.toASCIIString())); > } > {code} > It should also be possible for the RequestReplyFunctionBuilder to receive a > namespace instead of a function type and to use `Target.namespace(namespace)` > to initialize the HttpFunctionEndpointSpec Builder instead. > -- This message was sent by Atlassian Jira (v8.3.4#803005)