Java 作为组件的枚举的Swagger注释
我有一个枚举:Java 作为组件的枚举的Swagger注释,java,enums,swagger,openapi,Java,Enums,Swagger,Openapi,我有一个枚举: 公共枚举用户类型{ 管理员(“管理员”), 客人(“客人”), 监督人(“监督人”), 正常(“正常”); 私有最终字符串类型; 用户类型(最终字符串类型){ this.type=type; } 我将其用作带有Swagger注释的查询参数: @GET @异步定时 @路径(“/all”) 全部作废( @ApiParam@PathParam(USER_ID)@Parameter(in=ParameterIn.PATH,name=USER_ID,required=true)最终用户标
公共枚举用户类型{
管理员(“管理员”),
客人(“客人”),
监督人(“监督人”),
正常(“正常”);
私有最终字符串类型;
用户类型(最终字符串类型){
this.type=type;
}
我将其用作带有Swagger注释的查询参数:
@GET
@异步定时
@路径(“/all”)
全部作废(
@ApiParam@PathParam(USER_ID)@Parameter(in=ParameterIn.PATH,name=USER_ID,required=true)最终用户标识UserId,
@QueryParam(类型)最终设置用户类型,
@挂起的最终异步响应异步响应
);
但是,生成的OpenAPI文件不是从枚举创建组件,而是提供:
get:
parameters:
- name: UserId
in: path
required: true
schema:
$ref: '#/components/schemas/UserId'
- name: Types
in: query
schema:
uniqueItems: true
type: array
items:
type: string
enum:
- ADMIN
- GUEST
- SUPERVISOR
- NORMAL
有没有办法将枚举改为组件架构?如果我在其他组件中使用此枚举,这些组件也会使用
enum:
而不是$ref
您需要使用@schema(…,enumAsRef=true)注释枚举和/或相应的参数
您可能需要使用@Schema(…,enumAsRef=true)
@Helen wonderful注释枚举和/或相应的参数;如果您将此作为答案发布,我可以标记它。