在 mule 应用程序中,我试图解析 RAML 文件。我知道 APIKit 在解析 RAML 文件后创建流的方式相同。但是,如果我想在流程中间手动解析它怎么办?
我已经看到可用的 raml 解析器,但没有找到这些 javascript 库或 java 库的正确用法,以了解如何在 mule 应用程序中使用它们。
在 mule 应用程序中,我试图解析 RAML 文件。我知道 APIKit 在解析 RAML 文件后创建流的方式相同。但是,如果我想在流程中间手动解析它怎么办?
我已经看到可用的 raml 解析器,但没有找到这些 javascript 库或 java 库的正确用法,以了解如何在 mule 应用程序中使用它们。
是的,您可以使用 java 类或实现 java 的 groovy 组件在您的 java 应用程序中解析您的 RAML。
有可用的 java 解析器,例如RamlModelBuilder,您可以使用它来解析应用程序 RAML,例如验证 RAML 文件、获取 API 名称、获取所有资源名称、方法名称、范围、安全模式及其名称、查询参数、标头等等...
只需检查示例如何在此处使用。您可以简单地创建一个 java 类并解析您的 RAML
ramlModelResult = new RamlModelBuilder().buildApi(ac.getRaml())
将为您提供 java 类中应用程序的当前 RAML 文件访问权限
Mule 中没有任何东西可以在运行时使用 RAML 文件。
但是您可以创建任何使用 RAML Java 库的 Java 组件,并在您的流程中从 Mule 调用它。
Mule4 SDK 是通过 Java 扩展 mule 的一种方式。
有关 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