go - 如何使用beego生成离线swagger doc
问题描述
我正在用 beego 开发一个网站,我想用 swagger 生成文档。
beego的官方文档向我们展示了如何使用swagger生成文档:https ://beego.me/docs/advantage/docs.md
我已经按照上面的文档成功地生成了 swagger 文档。
但是,该文档未离线,这意味着我必须保持我网站的服务器运行才能使用在线文档。
是否可以生成一种离线文档?
解决方案
要生成离线招摇我启动本地服务器(例如 localhost:8088/swagger/)并运行
docker run -e "JAVA_MEM=1024m" -e "HTTP_PORT=80" -p 8888:80 --name swagger-generator-v3 -v /tmp:/jetty_home/lib/shared swaggerapi/swagger-generator-v3
当 swagger 生成器打开时:http://localhost:8888/index.html
使用带有参数的“POST”/生成路由(“lang”:“html”或“lang”:“html2”)
{
"lang": "html",
"specURL": "http://172.17.0.1:8088/swagger/swagger.json"
}
单击“执行”并获取“下载文件”
或者使用这个 bash 脚本:
#!/bin/bash
OUTFILE="offline_swagger.zip"
HOST=127.0.0.1
SWAGGER_IP_PORT=8090
DOCKER_IP=$(ip addr show | grep "\binet\b.*\bdocker0\b" | awk '{print $2}' | cut -d '/' -f 1)
SWAGGERJSON=http://$DOCKER_IP:$SWAGGER_IP_PORT/swagger/swagger.json
API_URL="http://$HOST:8888/api/generate"
generate_post_data()
{
cat <<EOF
{
"lang": "html",
"specURL": "$SWAGGERJSON"
}
EOF
}
#Check if swagger is on
</dev/tcp/$HOST/$SWAGGER_IP_PORT
if [ "$?" -ne 0 ]; then
echo "Connection to $HOST on port $SWAGGER_IP_PORT failed"
exit 1
fi
docker run -d -e "JAVA_MEM=1024m" -e "HTTP_PORT=80" -p 8888:80 -v /tmp:/jetty_home/lib/shared swaggerapi/swagger-generator-v3
sleep 10
curl -X POST -H 'Content-Type:application/json' -H 'accept: application/json' --data "$(generate_post_data)" ${API_URL} -o $OUTFILE
docker stop $(docker ps -q --filter ancestor=swaggerapi/swagger-generator-v3 )
echo "Output to $OUTFILE"
推荐阅读
- reinforcement-learning - 深度强化学习背景下的batch size是什么意思?
- arrays - 如果匹配,如何搜索php数组并获取相应的键值
- php - 带有 rfc/822 的 phpmailer eml 文件未在 Outlook 上打开但在 gmail 上打开
- ios - 我们如何将访问令牌传递给 Web 视图中的标头
- python - 如何更改最后一个数组维度?
- r - 如何在R中乘以不同大小列表的向量
- java - 如何修改使 IllegalArgumentException: column '_id' 不存在的光标
- c# - C# .NET WPF 窗口 Mousedown/Keydown 不会触发通过 USB 红外接收器连接的电视遥控器的 4 色按钮关闭
- excel - 读取 excel 时 Spark 出错:org.apache.poi.openxml4j.exceptions.InvalidFormatException
- splunk - Splunk Dropdown 基于来自字符串结果的字段