在 Linux 环境下导出 Swagger 文档,常见做法有 几种,取决于你用的是 Swagger UI / Spring Boot / 命令行工具。下面按常见场景说明:
如果你的服务已经集成了 Swagger UI(如 Spring Boot):
浏览器访问:
http://ip:port/swagger-ui.html
或
http://ip:port/swagger-ui/index.html
找到 Swagger JSON 地址,通常是:
http://ip:port/v2/api-docs
或
http://ip:port/v3/api-docs
在 Linux 上直接用 curl 导出:
curl http://localhost:8080/v3/api-docs > swagger.json
# 安装(示例)
wget https://repo1.maven.org/maven2/io/swagger/codegen/v3/swagger-codegen-cli/3.0.34/swagger-codegen-cli-3.0.34.jar
# 导出 HTML
java -jar swagger-codegen-cli.jar generate \
-i swagger.json \
-l html2 \
-o swagger-html
# swagger json -> adoc
swagger2markup swagger.json -o swagger.adoc
# adoc -> html
asciidoctor swagger.adoc
# adoc -> pdf
asciidoctor-pdf swagger.adoc
如果你用的是 Springdoc:
@GetMapping("/export-swagger")
public void export(HttpServletResponse response) throws IOException {
response.setContentType("application/json");
response.getWriter().write(
openAPIJsonMapper.writeValueAsString(openAPI)
);
}
docker exec -it 容器名 curl http://localhost:8080/v3/api-docs > swagger.json
| 格式 | 命令示例 |
|---|---|
| JSON | curl .../v3/api-docs > swagger.json |
| YAML | curl .../v3/api-docs.yaml > swagger.yaml |
| HTML | swagger-codegen |
| asciidoctor-pdf |
如果你能告诉我:
我可以直接给你最合适的命令。