温馨提示×

怎么自定义linux swagger

小樊
53
2026-09-27 19:24:24
栏目: 智能运维

在 Linux 下“自定义 Swagger”通常有几种常见场景,下面我按最常见的使用方式给你说明,你可以对照自己的情况选择。


一、如果你是 Spring Boot 项目(最常用)

1. 引入依赖

以 Springdoc OpenAPI(Swagger 3) 为例:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.3.0</version>
</dependency>

旧版是 springfox-swagger2,已不推荐。


2. 自定义 Swagger 配置类

@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

3. 自定义扫描包 / 路径

@Bean
public GroupedOpenApi publicApi() {
    return GroupedOpenApi.builder()
            .group("user-api")
            .packagesToScan("com.example.user")
            .build();
}

4. 生产环境关闭 Swagger(Linux 服务器常见)

springdoc:
  swagger-ui:
    enabled: false

或:

@Profile("!prod")

二、如果你是 Node.js(Express + Swagger)

1. 安装

npm install swagger-ui-express yamljs

2. 自定义 swagger.json

{
  "swagger": "2.0",
  "info": {
    "title": "Linux API",
    "version": "1.0.0"
  },
  "paths": {}
}

3. 挂载

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));

三、如果你是纯静态 Swagger(Linux 部署)

适合 前后端分离 / 微服务

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;
}

四、Linux 常见自定义点总结

✅ 修改标题 / 描述
✅ 分组 API
✅ 权限控制(token)
✅ 生产环境禁用
✅ 反向代理(Nginx + Swagger)


五、你可以告诉我

为了更精准帮你,我可以继续:

  1. 你用的是 Java / Node / Go / Python?
  2. 是 Spring Boot 还是 Swagger UI 静态部署?
  3. 想“自定义”的是:
    • 界面?
    • 接口分组?
    • 权限?
    • 文档内容?

我可以直接给你可复制的 Linux 配置示例。

0 踩