介绍
@Server
是 Swagger/OpenAPI 3.0 注解中的一个注解,用于定义 API 文档中的服务器信息。通过
@Server
注解,你可以指定 API 服务的基础 URL 或其他相关信息。
源代码
package io.swagger.v3.oas.annotations.servers;
import io.swagger.v3.oas.annotations.extensions.Extension;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.METHOD, ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(Servers.class)
@Inherited
public @interface Server {
String url() default "";
String description() default "";
ServerVariable[] variables() default {};
Extension[] extensions() default {};
}
注解属性
@Server
注解有以下常用属性:
-
url
: 服务器的 URL 地址。 -
description
: 服务器的描述信息。 -
variables
: 服务器 URL 中的变量,可以动态替换。
使用场景
在编写 API 文档时,通常需要指定 API 服务的访问地址。@Server
注解可以帮助你在生成的 OpenAPI 文档中定义这些服务器信息。
基本用法
@Server
注解可以用于类级别或方法级别,具体取决于你想在哪个范围内定义服务器信息。
erver
注解,你可以指定 API 服务的基础 URL 或其他相关信息。
示例代码
类级别使用
import io.swagger.v3.oas.annotations.servers.Server;
import io.swagger.v3.oas.annotations.servers.Servers;
@Servers({
@Server(url = "https://api.chegnxuyuanshitang.com", description = "生产环境服务器"),
@Server(url = "https://sandbox.api.chegnxuyuanshitang.com", description = "测试环境服务器")
})
public class DemoApi {
// Demo方法
}
方法级别使用
import io.swagger.v3.oas.annotations.servers.Server;
import io.swagger.v3.oas.annotations.Operation;
public class DemoApi {
@Operation(summary = "获取demo信息")
@Server(url = "https://api.chegnxuyuanshitang.com/demo", description = "demo服务服务器")
public void getDemo() {
// demo方法实现
}
}