Skip to content

Support integer enum values #4768

Open
@T3rm1

Description

Currently only string values are supported for enums. Is there a reason why this limitation exists?

Creation of StringSchema for enum types:
https://github.com/swagger-api/swagger-core/blame/dc8785efc71c243eebf1ad57dd612cc75112d351/modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/ModelResolver.java#L309

Props are only added if schema is of type StringSchema:
https://github.com/swagger-api/swagger-core/blame/dc8785efc71c243eebf1ad57dd612cc75112d351/modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/ModelResolver.java#L1220-L1223

Please add support for enums like this:

public enum MyEnumInteger {

	FIRST(1), SECOND(2), THIRD(3);

	@JsonCreator
	MyEnumInteger(int value) {
		this.value = value;
	}

	@JsonValue
	private int value;

	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}
}

Expected result:

"MyEnumInteger": {
    "type": "integer",
    "format": "int32",
    "enum": [
        1,
        2,
        3
    ]
}

Actual result:

"MyEnumInteger": {
    "type": "string",
    "enum": [
        "1",
        "2",
        "3"
    ]
}

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions