php拆分jsion_PHP拆分YAPI导出的swagjson文件
項目采用了Yapi做為文檔管理工具,可是由于之前沒有劃分好模塊,結(jié)果文檔都寫到一起了,導(dǎo)致查看文檔不方便。
研究Yapi,發(fā)現(xiàn)不能移動分組,而且只能導(dǎo)出項目下的所有接口,于是導(dǎo)出文件,研究后發(fā)現(xiàn)文檔里的文件夾是使用tag來表示的,于是想到可以把按照tag,導(dǎo)出成單個json文件,然后新建項目,再導(dǎo)入生產(chǎn)的json文件。
處理json的話,還是PHP方便,代碼如下:
用法 php yapi.php /path/yourjsonfile /path/output/ ,注意導(dǎo)出目錄最后得有'/'
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);
總結(jié)
以上是生活随笔為你收集整理的php拆分jsion_PHP拆分YAPI导出的swagjson文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不起作用 微信小程序 顶部json_微信
- 下一篇: soap响应报文拼装_SOAP学习,构建