diff --git a/docs/generators/kotlin-spring.md b/docs/generators/kotlin-spring.md index f6faec2c83d..b56eea93dee 100644 --- a/docs/generators/kotlin-spring.md +++ b/docs/generators/kotlin-spring.md @@ -57,6 +57,13 @@ These options may be applied as additional-properties (cli) or configOptions (pl |useSwaggerUI|Open the OpenApi specification in swagger-ui. Will also import and configure needed dependencies| |true| |useTags|Whether to use tags for creating interface and controller class names| |false| +## SUPPORTED VENDOR EXTENSIONS + +| Extension name | Description | Applicable for | Default value | +| -------------- | ----------- | -------------- | ------------- | +|x-pattern-message|Add this property whenever you need to customize the invalidation error message for the regex pattern of a variable|FIELD, OPERATION_PARAMETER|null + + ## IMPORT MAPPING | Type/Alias | Imports | diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinSpringServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinSpringServerCodegen.java index c78355a902c..3111c2a3bc4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinSpringServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/KotlinSpringServerCodegen.java @@ -32,6 +32,7 @@ import org.openapitools.codegen.CodegenProperty; import org.openapitools.codegen.CodegenResponse; import org.openapitools.codegen.CodegenType; import org.openapitools.codegen.SupportingFile; +import org.openapitools.codegen.VendorExtension; import org.openapitools.codegen.languages.features.BeanValidationFeatures; import org.openapitools.codegen.languages.features.DocumentationProviderFeatures; import org.openapitools.codegen.languages.features.SwaggerUIFeatures; @@ -982,4 +983,11 @@ public class KotlinSpringServerCodegen extends AbstractKotlinCodegen this.requestMappingMode = requestMappingMode; } + @Override + public List getSupportedVendorExtensions() { + List extensions = super.getSupportedVendorExtensions(); + extensions.add(VendorExtension.X_PATTERN_MESSAGE); + return extensions; + } + } diff --git a/modules/openapi-generator/src/main/resources/kotlin-spring/beanValidationModel.mustache b/modules/openapi-generator/src/main/resources/kotlin-spring/beanValidationModel.mustache index 996353148d6..583ee37f90e 100644 --- a/modules/openapi-generator/src/main/resources/kotlin-spring/beanValidationModel.mustache +++ b/modules/openapi-generator/src/main/resources/kotlin-spring/beanValidationModel.mustache @@ -4,7 +4,7 @@ format: email @get:Email{{/isEmail}}{{! pattern set }}{{#pattern}} - @get:Pattern(regexp="{{{.}}}"){{/pattern}}{{! + @get:Pattern(regexp="{{{pattern}}}"{{#vendorExtensions.x-pattern-message}}, message="{{vendorExtensions.x-pattern-message}}"{{/vendorExtensions.x-pattern-message}}){{/pattern}}{{! minLength && maxLength set }}{{#minLength}}{{#maxLength}} @get:Size(min={{minLength}},max={{maxLength}}){{/maxLength}}{{/minLength}}{{!