在m子中手动解析RAML文件的简单方法是什么?

时间:2018-12-17 07:18:22

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

在m子应用程序中,我试图解析RAML文件。我知道APIKit所做的与在解析RAML文件后创建流一样。但是,如果我想在流的中间手动解析该怎么办?

我已经看到可用的raml解析器,但是没有找到有关如何在m子应用程序中使用它们的javascript库或java库的正确用法。

2 个答案:

答案 0 :(得分:1)

Mule中没有任何东西可以在运行时使用RAML文件。

但是您可以创建使用RAML Java库的任何Java组件,并在流中从Mule调用它。

Mule4 SDK是通过Java扩展m子的一种方法。

有关Mule SDK的更多信息,请参见https://mule4-docs.mulesoft.com/mule-sdk/v/1.1/

您还可以调用Java类,但是需要将它们与Mule API分离,并且需要提取任何变量,属性或有效负载并将其值显式传递给您的类。例如,将静态String和flow var作为参数传递给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文件以从类路径加载。

此处提供了有关与Mule 4进行Java集成的更多信息:https://docs.mulesoft.com/mule-runtime/4.1/intro-java-integration

答案 1 :(得分:0)

是的,您可以使用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文件访问权限