Linux上生成 Swagger API 文档的实用方案
一 前置准备
二 方式一 运行时集成生成文档 Spring Boot 示例
<dependencies>
<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>
</dependencies>
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
.paths(PathSelectors.any())
.build();
}
}
三 方式二 代码注解生成规范并导出静态文档
const express = require('express');
const swaggerUi = require('swagger-ui-express');
const swaggerJsdoc = require('swagger-jsdoc');
const options = {
definition: {
openapi: '3.0.0',
info: { title: 'API', version: '1.0.0' }
},
apis: ['./routes/*.js'] // 含 JSDoc 注解的文件
};
const swaggerSpec = swaggerJsdoc(options);
const app = express();
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
app.listen(3000, () => console.log('Docs: http://localhost:3000/api-docs'));
四 方式三 使用 OpenAPI Generator 从规范生成文档与客户端
java -jar swagger-codegen-cli.jar generate \
-i path/to/swagger.yaml \
-l html2 \
-o path/to/output/docs
java -jar swagger-codegen-cli.jar generate \
-i path/to/swagger.yaml \
-l java \
-o path/to/output/java-client
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>5.2.1</version>
<executions>
<execution>
<goals><goal>generate</goal></goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/swagger.yaml</inputSpec>
<generatorName>html2</generatorName>
<output>${project.build.directory}/generated-docs</output>
</configuration>
</execution>
</executions>
</plugin>
五 方式四 使用 Docker 快速运行编辑器与 UI
docker run -d -p 38080:8080 swaggerapi/swagger-editor:v4.6.0
docker run -d -p 38081:8080 swaggerapi/swagger-ui:v4.15.5
六 实用建议