在 Linux 下“自定义 Swagger”通常有几种常见场景,下面我按最常见的使用方式给你说明,你可以对照自己的情况选择。
以 Springdoc OpenAPI(Swagger 3) 为例:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
旧版是
springfox-swagger2,已不推荐。
@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.info(new Info()
.title("我的API文档")
.version("1.0")
.description("Linux 环境自定义 Swagger 示例"));
}
}
访问地址(Linux 服务器):
http://<ip>:8080/swagger-ui.html
@Bean
public GroupedOpenApi publicApi() {
return GroupedOpenApi.builder()
.group("user-api")
.packagesToScan("com.example.user")
.build();
}
springdoc:
swagger-ui:
enabled: false
或:
@Profile("!prod")
npm install swagger-ui-express yamljs
{
"swagger": "2.0",
"info": {
"title": "Linux API",
"version": "1.0.0"
},
"paths": {}
}
const swaggerUi = require('swagger-ui-express');
const YAML = require('yamljs');
const swaggerDoc = YAML.load('./swagger.yaml');
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDoc));
适合 前后端分离 / 微服务
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.0.0.zip
unzip v5.0.0.zip
修改:
swagger-ui/dist/index.html
window.onload = function () {
window.ui = SwaggerUIBundle({
url: "http://linux-ip:8080/v3/api-docs",
dom_id: '#swagger-ui'
});
};
用 Nginx 托管:
location /swagger/ {
root /opt/swagger-ui/dist;
}
✅ 修改标题 / 描述
✅ 分组 API
✅ 权限控制(token)
✅ 生产环境禁用
✅ 反向代理(Nginx + Swagger)
为了更精准帮你,我可以继续:
我可以直接给你可复制的 Linux 配置示例。