php拆分jsion_PHP拆分YAPI导出的swagjson文件
项目采用了Yapi做为文档管理工具,可是由于之前没有划分好模块,结果文档都写到一起了,导致查看文档不方便。
研究Yapi,发现不能移动分组,而且只能导出项目下的所有接口,于是导出文件,研究后发现文档里的文件夹是使用tag来表示的,于是想到可以把按照tag,导出成单个json文件,然后新建项目,再导入生产的json文件。
处理json的话,还是PHP方便,代码如下:
用法 php yapi.php /path/yourjsonfile /path/output/ ,注意导出目录最后得有'/'
function buildCommon($json)
{
$common = [
'swagger' => $json['swagger'],
'info' => $json['info'],
'basePath' => $json['basePath'],
'tags' => [],
'schemes' => $json['schemes'],
'paths' => [],
];
return $common;
}
function buildContent($json, $common, $outDir)
{
$paths = array_keys($json['paths']);
$orignTags = $json['tags'];
foreach ($orignTags as $tIndex => $tag) {
$result = $common;
foreach ($paths as $pIndex => $path) {
if (isset($json['paths'][$path]['post'])) {
$tags = $json['paths'][$path]['post']['tags'];
} else {
$tags = $json['paths'][$path]['get']['tags'];
}
if (in_array($tag['name'], $tags)) {
$result['paths'][$path] = $json['paths'][$path];
}
}
file_put_contents($outDir.$tag['name'].'.json',json_encode($result,JSON_UNESCAPED_UNICODE));
}
}
function main($param)
{
if (count($param) != 3) {
die("param error, example: sw.php input.json outputdir");
}
$content = file_get_contents($param[1]);
$json = json_decode($content, true);
if (!$json) {
die('input.json wrong');
}
$common = buildCommon($json);
buildContent($json, $common, $param[2]);
}
main($argv);
php拆分jsion_PHP拆分YAPI导出的swagjson文件相关推荐
- SOA和微服务之间的区别(应用和数据的垂直拆分水平拆分)
目录 引出问题 重要概念 垂直拆分 水平拆分 同步分层架构 异步分层架构 SOA是什么? 微服务是什么? 数据库拆分 写在最后 引出问题 互联网发展迅猛,互联网系统也由原来的单机服务逐步的演化为分布式 ...
- [react] React如何进行代码拆分?拆分的原则是什么?
[react] React如何进行代码拆分?拆分的原则是什么? 这里我认为react的拆分前提是代码目录设计规范,模块定义规范,代码设计规范,符合程序设计的一般原则,例如高内聚.低耦合等等. 在我们的 ...
- 怎么把pdf拆分成一页一页的单独文件?
在日常的办公中总会有各种场景衍生出来的各种文件操作技巧.比如面对一份页数很多的PDF文件,而我们需要取其中的一部分传输给领导或同事,如果我将整份的PDF文件进行传输,势必显得自己工作不到位,也不专业, ...
- 数据库垂直拆分 水平拆分
转载:https://www.cnblogs.com/firstdream/p/6728106.html 数据库拆分简单来说,就是指通过某种特定的条件,按照某个维度,将我们存放在同一个数据库中的数据分 ...
- pdf文件在线拆分如何拆分?
PDF文件有时会很大,我们就会拆分,PDF文件在线拆分如何拆分?拆分能很好地保留一些文件,质量还是一样,所以在线拆分是很好的方法. 1在百度中去搜索关键词迅捷pdf在线转换器,然后开始分割 2进入后, ...
- 数据库表的垂直拆分/水平拆分
垂直拆分 1. 垂直拆分的定义 所谓的垂直拆分,就是把原来一个有很多列的表拆分成多个表,这解决了表的宽度问题. 2. 垂直拆分的原则: 1. 把不常用的字段表单独存放到一个表中. 2. 把大字段独立存 ...
- 服务器怎么导出数据库文件,怎么导出服务器数据库文件
怎么导出服务器数据库文件 内容精选 换一换 确认后点击确认即可,导出内容参考表1.选择界面 MongoDB官网提供了针对不同操作系统的客户端安装包,其二进制安装包下载页面链接为:https://www ...
- 如何优化百万级别数据导出(excel 文件)
如何优化百万级别数据导出(excel 文件) 背景 未优化前存在的问题 业务接口流程 优化后 业务接口流程(优化版v1) 业务接口流程(优化版v2) 优化效果 复盘 宏观层面 遇到的困难 收获 代码实 ...
- java导出为excel文件_java导出数据到excel文件
有的时候,将一些有用的数据导出到excel是很有必要的.比如说,我现在在做一个学校的在线教学平台,有一个需求是:将学生成绩导出到excel文件中去. 那怎样实现用java导出数据到excel文件呢?? ...
最新文章
- 两个月入门深度学习,全靠动手实践!一位前端小哥的经验分享
- python生成器、迭代器、__call__、闭包简单说明
- adb命令 android 串口_ADB使用linux命令查看Android的使用情况
- 解决安装SQL Server 2005开发版时,出现“SQL Server 服务无法启动 ”点击重试或取消的解决方法
- ros发布节点信息python_vscode开发ROS1(13)-python实现话题通信(msg)
- Mongodb 分片与副本集
- 【bzoj 2434】【codevs 1946】[Noi2011]阿狸的打字机(AC自动机)
- linux 桌面使用体验 远程访问win for linux
- DevOps看起来很美,实现起来却很难?
- 搜索结果红色php,.NET_asp.net搜索匹配关键字为红色显示的代码,首先创建类库 Model (业务实体 - phpStudy...
- 【优化算法】自治群体粒子群优化算法(AGPSO)【含Matlab源码 1450期】
- 面向对象的oop编程思想
- centos安装部署webssh
- ORACLE US7ASCII编码 读取时乱码问题
- java io流过滤流_JAVA io流 文件流 字节流 字符流 过滤流 缓冲流
- css解决图片缩小变模糊问题
- 三星S508手机DIY图文教程全攻略
- GIS开发:推荐Mapbox gl解决方案
- 大三老学姨想说。。。
- 计算机专业的英语复试自我介绍,计算机专业复试英语自我介绍
热门文章
- 【深度学习】sigmoid - 二次代价函数 - 交叉熵 - logistic回归 - softmax
- 【面向代码】学习 Deep Learning Convolution Neural Network(CNN)
- Java中六大时间类的使用和区别
- 自己动手实现的 Spring IOC 和 AOP - 上篇
- 数据结构之并查集Union-Find Sets
- 程序员面试题精选100题(22)-整数二进制表示中1的个数[算法]
- Go 语言简介(上)— 语法
- 云计算平台管理的三大利器Nagios、Ganglia和Splunk
- 2018-2019-2 20165330《网络对抗技术》Exp9 Web安全基础
- jvm内存模型及分配