阅读 177

POSTMAN JSON转接口文档 Collection v2.1 (recommended)

本代码主要针对“GET”请求和“POST”请求中的 raw->body(json)模式,且导出版本对应Collection v2.1

所需jar包

 

 

 

ExportPostManApiUtil.java 
package mango;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

/**
 * postman转接口文档html
 * zhouy
 * 2021-6-10 11:45:48
 */
public class ExportPostManApiUtil {

    public static String readToString(String fileName) {
        String encoding = "UTF-8";
        File file = new File(fileName);
        Long fileLength = file.length();
        byte[] fileContent = new byte[fileLength.intValue()];
        try {
            FileInputStream in = new FileInputStream(file);
            in.read(fileContent);
            in.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            return new String(fileContent, encoding);
        } catch (UnsupportedEncodingException e) {
            System.err.println("The OS does not support " + encoding);
            e.printStackTrace();
            return null;
        }
    }

    public static void main(String[] args) {
//        readFile("C:\\Users\\Yan\\Desktop\\api\\b.json");
//        readFile("C:\\Users\\Yan\\Desktop\\api\\c.json");
//        readFile("C:\\Users\\Yan\\Desktop\\api\\d.json");
//        readFile("C:\\Users\\Yan\\Desktop\\api\\e.json");
//        readFile("C:\\Users\\Yan\\Desktop\\api\\f.json");
        readFile("C:\\Users\\acer\\Desktop\\test.json");
    }

    /**
     * 解析postman 导出的Json数据
     *
     * @param path
     */
    @SuppressWarnings({ "unchecked", "rawtypes" })
    private static void readFile(String path) {
        String file = readToString(path);
        Map fileMap = (Map)JSON.parse(file);
        Map infoMap = (Map)fileMap.get("info");
        List apiList = JSONObject.parseArray(fileMap.get("item").toString(), Map.class);
        writeToHtml(infoMap.get("name").toString(), apiList);
    }

    /**
     * 数据拼成html
     *
     * @param title
     * @param gameList
     */
    @SuppressWarnings("rawtypes")
    private static void writeToHtml(String title, List apiList) {
        PrintWriter out = null;
        try {
            StringBuffer buffer = new StringBuffer();
            buffer.append("");
            buffer.append("");
            buffer.append("");
            buffer.append("

" + title + "

"); for (Map apiMap : apiList) { Map requestMap = (Map) apiMap.get("request"); Map urlMap = (Map) requestMap.get("url"); List pathStringList = JSONObject.parseArray(urlMap.get("path").toString(), String.class); //取出方法名 String methodNameStr = pathStringList.get(pathStringList.size()-1).split("\\.")[0]; buffer.append("
"); buffer.append("

接口名称:" + parseGet(apiMap.get("name")) + "

"); buffer.append("
"); buffer.append("

方法名称:" + methodNameStr + "

"); buffer.append("
"); buffer.append("

接口地址:" + parseGet(urlMap.get("raw")) + "

"); buffer.append("
"); buffer.append("

请求方式:" + parseGet(requestMap.get("method")) + "

"); buffer.append("
"); if(String.valueOf(requestMap.get("method")).toLowerCase().equals("get")) { if(urlMap.get("query") != null ) { List queryMap = JSONObject.parseArray(urlMap.get("query").toString(), Map.class); if (null != queryMap && queryMap.size() > 0) { buffer.append("

请求参数:

"); buffer.append("
"); buffer.append(""); buffer.append(""); buffer.append(""); buffer.append(""); for (Map data : queryMap) { buffer.append(""); buffer.append(""); buffer.append(""); } buffer.append("
参数名参数类型是否必填示例值描述
" + parseGet(data.get("key")) + "String" + parseGet(data.get("value")) + "" + parseGet(data.get("description")) + "
"); } } }else { if(requestMap.get("body")!= null ) { Map bodyMap = (Map) requestMap.get("body"); buffer.append("

请求参数:

"); buffer.append("
"); buffer.append(""); buffer.append(""); buffer.append(""); buffer.append(""); buffer.append(""); buffer.append(""); buffer.append(""); buffer.append("
请求方式JSON格式
" + parseGet(bodyMap.get("mode")) + "" + parseGet(bodyMap.get("raw")) + "
"); } } buffer.append("
"); buffer.append("
"); buffer.append("
"); } buffer.append(""); buffer.append(""); //写入html文件并输出 out = new PrintWriter("C:\\Users\\acer\\Desktop\\加密卡接口测试.html"); out.write(buffer.toString()); //数据写入成功 System.out.println("----------------------->数据写入成功"); } catch (Exception e) { e.printStackTrace(); }finally { if(out!=null) { out.close(); } } } /** * 非空处理 * @param value * @return */ public static String parseGet(Object value) { if(value == null) { return "<空>"; }else { return String.valueOf(value); } } }

 

参考:https://www.cnblogs.com/xsnd/p/8708817.html

原文:https://www.cnblogs.com/zhoumango/p/14870510.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐