Linux下用 Swagger OpenAPI 优化前后端协作
一 基础架构与文档一致性
二 交互效率与自动化
三 性能与安全优化
四 落地配置与命令示例
Docker 部署 Editor 与 UI(开发/联调环境常用)
# Swagger Editor
docker pull swaggerapi/swagger-editor:v4.6.0
docker run -d -p 38080:8080 swaggerapi/swagger-editor:v4.6.0
# Swagger UI(将 /openapi.yaml 挂载到容器内)
docker pull swaggerapi/swagger-ui:v4.15.5
docker run -d -p 38081:8080 \
-e SWAGGER_JSON=/openapi.yaml \
-v $PWD/openapi.yaml:/openapi.yaml \
swaggerapi/swagger-ui:v4.15.5
访问 http://<服务器IP>:38080(Editor)与 http://<服务器IP>:38081(UI)。生产环境建议置于 Nginx 反向代理后并开启 TLS。
Spring Boot 整合示例(保证文档与代码一致)
<!-- Maven 依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("API 文档")
.description("前后端联调契约")
.version("1.0")
.build();
}
}
启动后访问 http://<服务地址>:<端口>/swagger-ui.html 查看与调试接口。