У меня есть метод 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>>
.