Генерируйте @NotNull из api.yml, используя задачу Swagger CodeGen в build.gradle - PullRequest
0 голосов
/ 10 июня 2019

Невозможно сгенерировать аннотации @NotNull для полей / свойств.Вместо этого он генерируется методом получения.Это вызывает проблему нулевых значений, которые могут быть установлены для сгенерированного POJO.Есть ли способ, которым мы можем генерировать поведение NotNull на уровне полей / свойств / установщика.

Используется Swagger: 2.0 с загрузкой Spring 2.0.3 и Java 8

Пробное useBeanValidation: true и recursiveBeanValidation:правда.Не помогло.

api.yml

Notification:
type: object
description: 'Error or notification'
properties:
  source:
    type: string
    example: SOL
    description: 'System or sub-system that caused the fault'
required:
- source

Swagger codeGen Задача в build.gradle

task generateApi {
    inputs.file("$projectDir/$swaggerSourceFile")
    outputs.dir("$projectDir/$swaggerTargetFolder")
doLast {
    def config = new CodegenConfigurator()
    config.setInputSpec("XXX")
    config.setOutputDir("$projectDir")
    config.setLang('spring')
    config.setAdditionalProperties([
            'interfaceOnly'    : 'true',
            'modelPackage'     : 'bla.bla',
            'apiPackage'       : 'bla.bla',
            'sourceFolder'     : swaggerTargetFolder,
            'useBeanValidation': true,
            'modelNameSuffix'  : 'Dto',
            'delegatePattern'  : 'false',
            'dateLibrary'      : 'java8',
    ])
    new  
    DefaultGenerator().opts(config.toClientOptInput()).generate()
    }
}
...