Swagger-codegen генерирует класс с полем Mapвместо карты - PullRequest
0 голосов
/ 08 марта 2019

У меня есть метод Spring-контроллера, подобный следующему:

    public ResponseDto<Map<Integer, List<CurrencyExchangeRateDto>>> getCurrencyExchangeRatesForClients(@RequestParam("client-ids") List<Integer> clientIds) {
        ...
        return responseDto;
    }

Детали реализации были опущены.

И мой класс ResponseDto выглядит следующим образом:

public class ResponseDto<T> extends BaseResponse implements IResponse {

    private T data;

    public ResponseDto(int errorCode, String errorMessage, boolean isTechnicalError) {
        this.errorCode = errorCode;
        this.errorMessage = errorMessage;
        this.isTechnicalError = isTechnicalError;
    }

    public ResponseDto(T data) {
        this.data = data;
    }
}

Проблема в том, что когда я генерирую код клиента, используя swagger-codegen в качестве поля data, я получаю Map<String, List<CurrencyExchangeRateDto>> вместо Map<Integer, List<CurrencyExchangeRateDto>>.Как я могу сделать swagger-codegen для генерации ResponseDtoMapintListCurrencyExchangeRateDto класса с полем данных как Map<Integer, List<CurrencyExchangeRateDto>>?

Мой сгенерированный ResponseDtoMapintListCurrencyExchangeRateDto класс:

public class ResponseDtoMapintListCurrencyExchangeRateDto {
  @JsonProperty("data")
  private Map<String, List<CurrencyExchangeRateDto>> data = null;
  ...
}

Как видите, тип поля data равен Map<String, List<CurrencyExchangeRateDto>> вместо ожидаемого: Map<Integer, List<CurrencyExchangeRateDto>>.

...