#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 как команду оболочки и считывать из нее выходные данные.
-
Сначала создайте новый проект узла с
npm init
помощью command. -
Создать 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);
}
}
);
- Создать 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);
}
}
- Скомпилируйте и запустите ее.
javac App.java
java App
Пожалуйста, обратите внимание, что это очень минималистичный пример. Вы можете использовать стандартный поток ошибок для чтения ошибок в вашем приложении.