Swagger Codegen генерирует слишком длинные строковые литералы - PullRequest
1 голос
/ 18 февраля 2020

Мне нужно генерировать классы на основе предоставленного файла чванства. К сожалению, я не имею никакого влияния на содержимое этого файла.

Моя конфигурация в gladle выглядит следующим образом:

task generateApi {
doLast {
    def config = new CodegenConfigurator()
    config.setInputSpec("file:///$projectDir/$swaggerSourceFile")
    config.setOutputDir("$projectDir/$swaggerTargetFolder")
    config.setLang('spring')
    config.setAdditionalProperties([
            'interfaceOnly'       : true,
            'apiPackage'          : 'somepackage',
            'modelPackage'        : 'somepackage.domain',
            'sourceFolder'        : '',
            'java8'               : true,
            'dateLibrary'         : 'java8',
            'skipDefaultInterface': true
    ])
    new DefaultGenerator().opts(config.toClientOptInput()).generate()
}
}

Исключение, которое я получаю, это: "ошибка: слишком длинная константа"

Проблема в том, что даже если я установил skipDefaultInterface, swagger сгенерирует его. В интерфейсе по умолчанию он генерирует тело объекта ответа по умолчанию, которое представляет собой json файл, длина строки которого 70 КБ.

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 18 февраля 2020

Похоже, что это известная проблема с генератором spring в Swagger Codegen:
https://github.com/swagger-api/swagger-codegen/issues/9055

PR для этой проблемы доступен, но еще не объединен ( по состоянию на февраль 2020 года):
https://github.com/swagger-api/swagger-codegen/pull/8691

Попробуйте использовать openapi-generator v. 4.2.2 или новее, который должен включать аналогичное исправление .

...