我最终写了一个shell脚本来解决这个问题:
API_ROOT_URL="http://petstore.swagger.wordnik.com/api/api-docs"
OUT_DIR=`pwd`
function download_json {
echo "Downloading $1 to $OUT_DIR$2.json"
curl -sS $1 | jq . > $OUT_DIR$2.json
}
download_json $API_ROOT_URL /api-index
jq -r .apis[].path $OUT_DIR/api-index.json | while read -r API_PATH; do
API_PATH=${API_PATH#$API_ROOT_URL}
download_json $API_ROOT_URL$API_PATH $API_PATH
done
这用于jq
从索引文件中提取API路径,并在下载JSON时对其进行漂亮打印。正如webron提到的那样,这也许只会让仍在使用1.x Swagger模式的人们感兴趣,尽管我看到自己将来会针对其他问题修改此脚本。
我为Swagger找到的一个问题是,我们的API文档中的条目顺序显然不稳定。针对我们的API文档(由swagger-springmvc生成)连续多次运行脚本会导致属性顺序发生微小变化。通过使用jq的--sort-keys
选项对JSON对象的属性键进行排序,可以部分解决此问题,但这并不涵盖所有情况,例如模型模式的required
属性是字符串属性名称的简单数组。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句