#7846
Description
kotlin-spring generator does not add @Valid annotation to nested classes
openapi-generator version
5.0.0-beta3
OpenAPI declaration file content or url
openapi: 3.0.0
info:
title: valid-bug API
description: API valid-bug
version: 1.0.0
servers:
- url: /api/callback/
tags:
- name: valid-bug
description: Callback Controller
paths:
/valid-bug:
post:
tags:
- valid-bug
summary: ''
operationId: validBug
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ValidBugDto'
required: true
responses:
'200':
description: OK
content: {}
deprecated: false
components:
schemas:
ValidBugDto:
title: ValidBugDto
type: object
required:
- date
- object
properties:
string:
type: string
date:
type: string
format: date
datetime:
type: string
format: date-time
uuid:
type: string
format: uuid
bigdecimal:
type: number
array:
type: array
items:
$ref: '#/components/schemas/NestedDto'
object:
$ref: '#/components/schemas/NestedDto'
NestedDto:
title: NestedDto
type: object
properties:
id:
type: string
format: uuid
Generation Details
maven plagin
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<executions>
<execution>
<id>valid-bug-api</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/openapi/valid-bug.yml</inputSpec>
<generateSupportingFiles>false</generateSupportingFiles>
<generatorName>kotlin-spring</generatorName>
<output>${project.build.directory}/generated-sources</output>
<apiPackage>test.api</apiPackage>
<modelPackage>test.model</modelPackage>
<configOptions>
<useTags>true</useTags>
<interfaceOnly>true</interfaceOnly>
<swaggerAnnotations>true</swaggerAnnotations>
<modelMutable>true</modelMutable>
<sourceFolder>src/main/kotlin</sourceFolder>
<enumPropertyNaming>UPPERCASE</enumPropertyNaming>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
Expected output
ValidBugDto
package test.model
import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import test.model.NestedDto
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull
import javax.validation.constraints.Pattern
import javax.validation.constraints.Size
import javax.validation.Valid
import io.swagger.annotations.ApiModelProperty
/**
*
* @param date
* @param `object`
* @param string
* @param datetime
* @param uuid
* @param bigdecimal
* @param array
*/
data class ValidBugDto(
@get:NotNull
@ApiModelProperty(example = "null", required = true, value = "")
@field:JsonProperty("date") var date: java.time.LocalDate,
@get:NotNull
@ApiModelProperty(example = "null", required = true, value = "")
@field:JsonProperty("object") var `object`: NestedDto,
@ApiModelProperty(example = "null", value = "")
@field:JsonProperty("string") var string: kotlin.String? = null,
@ApiModelProperty(example = "null", value = "")
@field:JsonProperty("datetime") var datetime: java.time.OffsetDateTime? = null,
@ApiModelProperty(example = "null", value = "")
@field:JsonProperty("uuid") var uuid: java.util.UUID? = null,
@ApiModelProperty(example = "null", value = "")
@field:JsonProperty("bigdecimal") var bigdecimal: java.math.BigDecimal? = null,
@ApiModelProperty(example = "null", value = "")
@field:JsonProperty("array") var array: kotlin.collections.List<NestedDto>? = null
) {
}
Real output
package test.model
import java.util.Objects
import com.fasterxml.jackson.annotation.JsonProperty
import test.model.NestedDto
import javax.validation.constraints.DecimalMax
import javax.validation.constraints.DecimalMin
import javax.validation.constraints.Max
import javax.validation.constraints.Min
import javax.validation.constraints.NotNull
import javax.validation.constraints.Pattern
import javax.validation.constraints.Size
import io.swagger.annotations.ApiModelProperty
/**
*
* @param date
* @param `object`
* @param string
* @param datetime
* @param uuid
* @param bigdecimal
* @param array
*/
data class ValidBugDto(
@get:NotNull
@ApiModelProperty(example = "null", required = true, value = "")
@field:JsonProperty("date") var date: java.time.LocalDate,
@get:NotNull
@ApiModelProperty(example = "null", required = true, value = "")
@field:JsonProperty("object") var `object`: NestedDto,
@ApiModelProperty(example = "null", value = "")
@field:JsonProperty("string") var string: kotlin.String? = null,
@ApiModelProperty(example = "null", value = "")
@field:JsonProperty("datetime") var datetime: java.time.OffsetDateTime? = null,
@ApiModelProperty(example = "null", value = "")
@field:JsonProperty("uuid") var uuid: java.util.UUID? = null,
@ApiModelProperty(example = "null", value = "")
@field:JsonProperty("bigdecimal") var bigdecimal: java.math.BigDecimal? = null,
@ApiModelProperty(example = "null", value = "")
@field:JsonProperty("array") var array: kotlin.collections.List<NestedDto>? = null
) {
}
Related issues/PRs
[https://github.com//pull/8037]
#7846
Description
kotlin-spring generator does not add @Valid annotation to nested classes
openapi-generator version
5.0.0-beta3
OpenAPI declaration file content or url
Generation Details
maven plagin
Expected output
ValidBugDto
Real output
Related issues/PRs
[https://github.com//pull/8037]