tengo una enumeración:
public enum UserType { ADMIN("Admin"), GUEST("Guest"), SUPERVIOR("Supervisor"), NORMAL("Normal"); private final String type; UserType(final String type) { this.type = type; }Y lo estoy usando como parámetro de consulta con anotación Swagger:
@GET @AsyncTimed @Path("/all") void all( @ApiParam @PathParam(USER_ID) @Parameter(in = ParameterIn.PATH, name = USER_ID, required = true) final UserId userId, @QueryParam(TYPES) final Set<UserType> userTypes, @Suspended final AsyncResponse asyncResponse );Sin embargo, el archivo OpenAPI generado no crea un componente a partir de la enumeración y, en cambio, proporciona:
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 ¿Hay alguna manera de hacer que la enumeración sea un esquema de componente? Si uso esta enumeración en otros componentes, esos componentes también usan enum: en lugar de $ref .
Debe anotar la enumeración y/o el parámetro correspondiente con @Schema(..., enumAsRef=true) .