【问题标题】:How to generate offline swagger doc with beego如何使用beego生成离线swagger doc
【发布时间】:2020-08-25 13:51:35
【问题描述】:

我正在用 beego 开发一个网站,我想用 swagger 生成文档。

beego官方文档向我们展示了如何用swagger生成文档:https://beego.me/docs/advantage/docs.md

我已经按照上面的文档成功生成了swagger doc。

但是,文档没有离线,这意味着我必须保持我网站的服务器运行才能使用在线文档。

是否可以生成一种离线文档?

【问题讨论】:

  • 我是一个beego初学者。 swagger 生成后,swagger 文件夹中有一个 index.html 文件。打开它,我们遇到了“CORS 请求不是 HTTP”的问题。使用 firefox,我们可以在“about: config”中禁用此选项,并将 privacy.file_unique_origin (insecure) 设置为 false。 developer.mozilla.org/it/docs/Web/HTTP/CORS/Errors/…
  • 您需要离线动态招摇,还是像文档一样静态也可以?
  • @AndreaManzi 我只需要我可以将生成的文档发送给任何人,他们可以在没有互联网的情况下阅读文档。

标签: go swagger beego


【解决方案1】:

要生成离线招摇我启动本地服务器(例如 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" 

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 2016-07-11
    • 2016-10-18
    • 2020-01-08
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    相关资源
    最近更新 更多