【问题标题】:what is the easy way to manually parse the RAML file in mule?在 mule 中手动解析 RAML 文件的简单方法是什么?
【发布时间】:2019-05-17 13:00:04
【问题描述】:

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

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

【问题讨论】:

    标签: mule anypoint-studio raml raml-java-parser


    【解决方案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 文件访问权限

    【讨论】:

      【解决方案2】:

      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

      【讨论】:

        猜你喜欢
        • 2013-07-06
        • 2023-03-17
        • 2010-09-05
        • 2011-09-04
        • 2017-02-11
        • 1970-01-01
        • 2011-02-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多