0

在 mule 应用程序中,我试图解析 RAML 文件。我知道 APIKit 在解析 RAML 文件后创建流的方式相同。但是,如果我想在流程中间手动解析它怎么办?

我已经看到可用的 raml 解析器,但没有找到这些 javascript 库或 java 库的正确用法,以了解如何在 mule 应用程序中使用它们。

4

2 回答 2

1

是的,您可以使用 java 类或实现 java 的 groovy 组件在您的 java 应用程序中解析您的 RAML。
有可用的 java 解析器,例如RamlModelBuilder,您可以使用它来解析应用程序 RAML,例如验证 RAML 文件、获取 API 名称、获取所有资源名称、方法名称、范围、安全模式及其名称、查询参数、标头等等...
只需检查示例如何在此处使用。您可以简单地创建一个 java 类并解析您的 RAML

https://github.com/anirban37/Anirban-Custom-Oauth-Policy/blob/master/Anirban-RAML-Oauth-V3/OauthPolicies.xml#L594

ramlModelResult = new RamlModelBuilder().buildApi(ac.getRaml())

将为您提供 java 类中应用程序的当前 RAML 文件访问权限

于 2018-12-18T15:38:48.643 回答
1

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

于 2018-12-17T23:03:23.110 回答