Ubuntu 上 Swagger OpenAPI 文档生成与发布
一 准备环境
sudo apt update && sudo apt install -y nodejs npmsudo apt install -y docker.io二 方式一 使用 Swagger Editor 编写与导出
wget https://github.com/swagger-api/swagger-editor/archive/refs/tags/v3.16.1.tar.gz
tar -xvf v3.16.1.tar.gz
cd swagger-editor-3.16.1
npm install
npm install -g http-server
http-server -p 8080
docker pull swaggerapi/swagger-ui-express
docker run -p 8080:8080 swaggerapi/swagger-ui-express
访问 http://localhost:8080 使用 UI(默认加载示例规范,可通过环境变量或挂载自定义规范)。三 方式二 在现有服务中集成 Swagger UI 展示文档
npm i express swagger-ui-express yamljsconst express = require('express');
const swaggerUi = require('swagger-ui-express');
const YAML = require('yamljs');
const app = express();
const swaggerDocument = YAML.load('./swagger.yaml'); // 或 swagger.json
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`Server on ${PORT}`));
node index.js,访问 http://localhost:3000/api-docs。docker run -p 8080:8080 \
-e SWAGGER_JSON=/app/swagger.json \
-v $(pwd):/app \
swaggerapi/swagger-ui-express
将你的 swagger.json 放在当前目录即可在 http://localhost:8080 查看。四 方式三 从代码注解自动生成 OpenAPI 规范
go install github.com/swaggo/swag/cmd/swag@latestswag init(生成 docs 目录)swag init 更新文档。<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
五 规范校验与代码生成
docker run --rm -p 8080:8080 openapitools/openapi-generator-cli
在容器内执行 validate 校验,或使用其预览能力进行快速检查。java -jar openapi-generator-cli-2.4.21.jar generate \
-i ./path/to/swagger.yaml \
-l java \
-o ./output