使用 java/spring 引导将 openAPI 规范转换为 Postman 集合

convert openAPI specification to a Postman collection using java/spring boot

我正在尝试 使用 spring 引导将 OpenAPI 规范转换为邮递员集合。 那么,是否有我可以使用的库或代码段做这个任务? 我对此进行了搜索,但发现 none.

我之前使用 npm 库完成了此操作。我将代码段放在下面。

var Converter = require('openapi-to-postmanv2'),
  openapiData = fileReader.result;

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

在 java 中,您可以 运行 节点脚本作为 shell 命令并从中读取输出。

  1. 首先使用npm init命令创建新节点项目。

  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

请注意,这是一个非常简约的示例。您可以使用标准错误流来读取应用程序中的错误。