Что такое простой способ, чтобы вручную разобрать файл RAML в муле?

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

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

2 ответа

Решение

Да, вы можете анализировать ваш 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

Нет ничего в 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, и вам нужно извлечь любые переменные, свойства или полезную нагрузку и явно передать значения вашему классу. Например, передача статической строки и потока 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>

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

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

Другие вопросы по тегам