You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring中如何从生成的OpenAPI文档中排除servers节

OpenAPI 禁用servers节生成方案

不同技术栈下的常用实现方案如下:

Java Springdoc 场景

配置文件方式

Spring Boot项目可以直接在application.yml中添加如下配置,将servers设为空即可不生成对应字段:

springdoc:
  servers: ''

代码自定义方式

自定义OpenAPI Bean时不设置servers属性即可:

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class OpenApiConfig {
    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
            .info(new Info()
                .title("业务API文档")
                .version("1.0.0")
                .description("业务接口说明文档"));
        // 无需调用.servers()方法配置服务信息,生成时自动忽略该字段
    }
}

Python FastAPI 场景

初始化直接配置

实例化FastAPI对象时将servers参数设为空列表:

from fastapi import FastAPI

app = FastAPI(
    title="业务API文档",
    version="1.0.0",
    servers=[]
)

自定义OpenAPI生成逻辑

如果需要更精细的控制,可以重写openapi生成方法手动删除servers字段:

from fastapi import FastAPI
from fastapi.openapi.utils import get_openapi

app = FastAPI(title="业务API文档", version="1.0.0")

def custom_openapi():
    if app.openapi_schema:
        return app.openapi_schema
    openapi_schema = get_openapi(
        title=app.title,
        version=app.version,
        routes=app.routes
    )
    # 手动移除servers字段
    openapi_schema.pop("servers", None)
    app.openapi_schema = openapi_schema
    return app.openapi_schema

app.openapi = custom_openapi

通用适配方案

无论使用哪种技术栈生成OpenAPI文档,都可以在拿到最终的JSON/YAML格式的api-docs内容后,手动删除顶级的servers字段即可,OpenAPI规范本身允许该字段不存在,缺失时会默认以当前访问路径的根路径/作为服务调用的基础路径。

内容的提问来源于stack exchange,提问作者vinit saha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 07:06:05