Что такое простой способ, чтобы вручную разобрать файл RAML в муле? - PullRequest
0 голосов
/ 17 декабря 2018

В приложении мул я пытаюсь разобрать файл RAML.Я знал, что APIKit делает то же самое, поскольку он создает потоки после анализа файла RAML.Но все же, что если я захочу разобрать его в середине потока вручную?

Я видел доступные синтаксические анализаторы raml, но не нашел правильного использования этих библиотек javascript или библиотек java о том, как использовать их в мулеприложение ..

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Да, вы можете анализировать ваш RAML в приложении Java, используя класс Java или Groovy-компонент, реализующий Java.
Доступен анализатор 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())

, который предоставит вам текущий доступ к файлам RAML приложенияв классе Java

0 голосов
/ 18 декабря 2018

Нет ничего в Mule для работы с файлом RAML во время выполнения.

Но вы можете создать любой компонент Java, который использует библиотеки Java RAML, и вызывать его из Mule в ваших потоках.

Mule4 SDK - это один из способов расширения mule через Java.

Более подробную информацию о Mule SDK можно найти здесь https://mule4 -docs.mulesoft.com / mule-sdk / v / 1.1 /

Вы также можете вызывать Java-классы, но они должны быть отделены от API Mule, и вам нужно извлечь любые переменные, свойства или полезную нагрузку и явно передать значения вашему классу.Например, передавая статическую строку и переменную потока в качестве аргументов конструктору Java:

<java:new class="com.foo.AppleEater" constructor="MyClass(String, Apple)">
  <java:args>#[{name: 'some string arg', apple: vars.apple}]</java:args>
</java:new>

В своем классе вы можете использовать библиотеки Java RAML и передать файл или путь к файлу RAML для загрузки изclasspath.

Подробнее об интеграции Java с Mule 4 здесь: https://docs.mulesoft.com/mule-runtime/4.1/intro-java-integration

...