# markdown与apifox互转 **Repository Path**: DevilDu/markdown-to-apifox ## Basic Information - **Project Name**: markdown与apifox互转 - **Description**: 为了批量迁移公司markdown的接口文档至apifox,制作此脚本一键生成apifox.json接口导入文件。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2022-04-18 - **Last Updated**: 2022-08-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # markdown与apifox互转 ## 项目说明 为了批量迁移公司markdown的接口文档至apifox,制作此脚本一键生成apifox.json接口导入文件。 选择生成apifox的导入文件而不是OpenAPI的json文件的原因是,OpenAPI是以路由的path作为唯一的key,由于我司接口的path基本都一样,所以未选用OpenAPI格式。 同样由于我司接口的特殊性,所有的参数放在了query_params里,所以在导入其他restful接口文档时,需要注意区分请求的query和body(自己改下代码吧)。 ## 项目结构 ``` markdown ├── main.py # 入口文件 ├── markdown │ ├── __init__.py # 空文件,忽略 │ ├── api_doc_model.py # api 文档模型 │ ├── api_transform.py # 对api的参数进行转换 │ ├── common.py # 获取某些id的公共方法 │ ├── markdown_transform.py # 将元素转成markdown格式 │ ├── parser.py # markdown文件解析器 │ └── template.py # apifox 文件模板 ├── reverse.py # 将apifox文件反转为markdown文件集 └── test.py # 在此调试某些模块 ``` 所有的解析都使用了基于生成器的协程来完成,如果要添加额外的解析,只需按同样的规格创建一个类似的生成器。 由于写的比较着急,部分代码还待优化,也希望得到您的建议。 代码的实际运行速度飞快(百文件的处理速度为0.05秒),完全不需要考虑多线程,而且对文件的解析是逐行进行的,自认为效率已经很高了。(虽然对于脚本而言不需要太考虑性能和效率) ## 项目运行 **markdown --> apifox** 打开 `main.py`,设置接口文档的根目录,设置需要保存的json文件路径。 我司的接口文档的目录大概是这样: ``` API参考 ├── 分组1 ├── 分组2 │ ├── 接口1.md │ ... │ └── 接口n.md ``` 所以如果您的目录结构不是这样的话,请稍微改下代码吧! **apifox --> markdown** 打开`reverse.py`,设置`apifox`导出的json文件路径,以及需要保存markdown目录的路径。 现支持导出所有接口(name、path、method、query_params、response_params、response_example)、所有文档 ## 功能规划与支持 [获取最新版本](https://gitee.com/DevilDu/markdown-to-apifox) - [x] markdown转apifox文件 - [x] apifox转markdown文件集 - [x] 支持响应数据中的array和object - [x] 支持apifox`数据模型`提取 - [ ] 支持apifox`环境配置`提取 - [ ] 支持apifox`全局响应`提取 - [ ] 优化接口请求参数的格式 ## 与我联系 如果对此脚本有改善的建议,或者对于使用存在疑惑,以及有功能优化的需求,可通过以下方式与我联系: * 在此项目下留言 衷心期待您的反馈,祝使用愉快~