преобразовать спецификацию OpenAPI в коллекцию Postman с помощью java / spring boot

#java #spring-boot #postman #openapi #file-conversion

#java #spring-boot #postman #openapi #преобразование файлов

Вопрос:

Я пытаюсь преобразовать спецификацию OpenAPI в коллекцию postman с помощью spring boot.Итак, есть ли библиотека или сегмент кода, который я могу использовать для выполнения этой задачи? Я искал об этом, но ничего не нашел.

Я сделал это ранее, используя библиотеку npm. Я помещу фрагмент кода ниже.

 var Converter = require('openapi-to-postmanv2'),
  openapiData = fileReader.resu<

Converter.convert({ type: 'string', data: openapiData },
  {}, (err, conversionResult) => {

    if (!conversionResult.result) {
      console.log('Could not convert', conversionResult.reason);
    }
    else {
      console.log('The collection object is: ', conversionResult.output[0].data);
    }
  }
);
  

источник: https://www.npmjs.com/package/openapi-to-postmanv2

Мне нужна помощь, чтобы сделать это с помощью spring boot

Ответ №1:

В Java вы можете запускать node script как команду оболочки и считывать из нее выходные данные.

  1. Сначала создайте новый проект узла с npm init помощью command.

  2. Создать index.js файл и добавьте следующий код. Я изменил ваш код, чтобы получать входные данные из аргументов командной строки вместо чтения из файла.

 var Converter = require('openapi-to-postmanv2')
openapiData = process.argv[2]

Converter.convert({ type: 'string', data: openapiData },
    {}, (err, conversionResult) => {
        if (!conversionResult.result) {
            console.log('Could not convert', conversionResult.reason);
        }
        else {
            console.log(conversionResult.output[0].data);
        }
    }
);
  
  1. Создать App.java и добавьте следующие строки.
 import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class App {
    public static void main(String[] args) throws InterruptedException, IOException {
        String data = "YOUR_DATA_HERE";
        String command = String.format("node index.js "%s"", data);
        Runtime runtime = Runtime.getRuntime();
        Process pr = runtime.exec(command);
        pr.waitFor();
        BufferedReader reader = new BufferedReader(new InputStreamReader(pr.getInputStream()));
        String output = "";
        String line;
        while ((line = reader.readLine()) != null) {
            output  = line;
        }
        System.out.println(output);
    }
}
  
  1. Скомпилируйте и запустите ее.
 javac App.java
java App
  

Пожалуйста, обратите внимание, что это очень минималистичный пример. Вы можете использовать стандартный поток ошибок для чтения ошибок в вашем приложении.