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注释枚举和/或相应的参数;如果您将此作为答案发布,我可以标记它。