在mule应用程序中,我试图解析RAML文件。我知道APIKit在解析RAML文件后创建流时也是这样做的。但是,如果我想要在流的中间手动解析它呢?
我已经看到了可用的raml解析器,但没有找到如何在mule应用程序中使用这些javascript库或java库的正确用法。
发布于 2018-12-18 15:38:48
是的,您可以在java应用程序中使用实现java的java类或groovy组件来解析RAML。
有像RamlModelBuilder这样的java解析器,您可以使用它来解析应用程序RAML,比如验证RAML文件、获取API名称、获取所有资源名称、方法名称、作用域、安全模式及其名称、查询参数、标头等等。
只需检查示例如何在这里使用它。您可以简单地创建一个java类并将您的RAML解析
ramlModelResult = new RamlModelBuilder().buildApi(ac.getRaml())
将为您提供java类中应用程序的当前RAML文件访问权限。
发布于 2018-12-17 23:03:23
Mule中没有任何东西可以在运行时处理RAML文件。
但是,您可以创建任何使用RAML Java库的Java组件,并在流中从Mule调用它。
Java是通过Mule4扩展The的一种方法。
有关Mule SDK的更多信息,请参见https://mule4-docs.mulesoft.com/mule-sdk/v/1.1/。
您也可以调用Java类,但它们需要与Mule API分离,并且需要提取任何变量、属性或有效负载,并显式地将值传递给类。例如,将静态字符串和流变量作为参数传递给Java构造函数:
<java:new class="com.foo.AppleEater" constructor="MyClass(String, Apple)">
<java:args>#[{name: 'some string arg', apple: vars.apple}]</java:args>
</java:new>在您的类中,您可以使用RAML Java库,并将文件或路径传递给RAML文件,以便从类路径加载。
关于Java与Mule 4集成的更多信息,请在这里:https://docs.mulesoft.com/mule-runtime/4.1/intro-java-integration
https://stackoverflow.com/questions/53810509
复制相似问题