diff --git a/bin/configs/kotlin-misk-config.yaml b/bin/configs/kotlin-misk-config.yaml
index 70ecde187aa4..6c9442faf960 100644
--- a/bin/configs/kotlin-misk-config.yaml
+++ b/bin/configs/kotlin-misk-config.yaml
@@ -1,6 +1,6 @@
generatorName: kotlin-misk
outputDir: samples/server/petstore/kotlin-misk-config
-inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
+inputSpec: modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-kotlin-misk.yaml
templateDir: modules/openapi-generator/src/main/resources/kotlin-misk
validateSpec: false
useBeanValidation: true
diff --git a/bin/configs/kotlin-misk.yaml b/bin/configs/kotlin-misk.yaml
index 5593aad0b7a7..684448fae443 100644
--- a/bin/configs/kotlin-misk.yaml
+++ b/bin/configs/kotlin-misk.yaml
@@ -1,6 +1,6 @@
generatorName: kotlin-misk
outputDir: samples/server/petstore/kotlin-misk
-inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
+inputSpec: modules/openapi-generator/src/test/resources/3_0/kotlin/petstore-kotlin-misk.yaml
templateDir: modules/openapi-generator/src/main/resources/kotlin-misk
additionalProperties:
hideGenerationTimestamp: "true"
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java
index 47e09ea292d4..e8c89ac9b6fa 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java
@@ -33,7 +33,7 @@ public class CodegenOperation {
hasErrorResponseObject; // if 4xx, 5xx responses have at least one error object defined
public CodegenProperty returnProperty;
public String path, operationId, returnType, returnFormat, httpMethod, returnBaseType,
- returnContainer, summary, unescapedNotes, notes, baseName, defaultResponse;
+ returnContainer, summary, unescapedSummary, unescapedNotes, notes, baseName, defaultResponse;
public CodegenDiscriminator discriminator;
public List
*
*
- * Response headers: [CodegenProperty{openApiType='string', baseName='Set-Cookie', complexType='null', getter='getSetCookie', setter='setSetCookie', description='Cookie authentication key for use with the `api_key` apiKey authentication.', dataType='String', datatypeWithEnum='String', dataFormat='null', name='setCookie', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.Set-Cookie;', baseType='String', containerType='null', containerTypeMapped='null', title='null', unescapedDescription='Cookie authentication key for use with the `api_key` apiKey authentication.', maxLength=null, minLength=null, pattern='null', example='AUTH_KEY=abcde12345; Path=/; HttpOnly', jsonSchema='{
+ *
Response headers: [CodegenProperty{openApiType='string', baseName='Set-Cookie', complexType='null', getter='getSetCookie', setter='setSetCookie', description='Cookie authentication key for use with the `api_key` apiKey authentication.', dataType='String', datatypeWithEnum='String', dataFormat='null', name='setCookie', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.Set-Cookie;', baseType='String', containerType='null', containerTypeMapped='null', title='null', unescapedDescription='Cookie authentication key for use with the `api_key` apiKey authentication.', unescapedDefaultValue='null', maxLength=null, minLength=null, pattern='null', example='AUTH_KEY=abcde12345; Path=/; HttpOnly', jsonSchema='{
"example" : "AUTH_KEY=abcde12345; Path=/; HttpOnly",
"type" : "string"
-}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, isPrimitiveType=true, isModel=false, isContainer=false, isString=true, isNumeric=false, isInteger=false, isShort=false, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=false, isUuid=false, isUri=false, isEmail=false, isPassword=false, isFreeFormObject=false, isArray=false, isMap=false, isOptional=false, isEnum=false, isInnerEnum=false, isEnumRef=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, isNew=false, isOverridden=null, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='setCookie', nameInPascalCase='SetCookie', nameInSnakeCase='SET_COOKIE', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, uniqueItemsBoolean=null, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, isVoid=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, hasSanitizedName=true, requiredVarsMap=null, ref=null, schemaIsFromAdditionalProperties=false, isBooleanSchemaTrue=false, isBooleanSchemaFalse=false, format=null, dependentRequired=null, contains=null}, CodegenProperty{openApiType='integer', baseName='X-Rate-Limit', complexType='null', getter='getxRateLimit', setter='setxRateLimit', description='calls per hour allowed by the user', dataType='Integer', datatypeWithEnum='Integer', dataFormat='int32', name='xRateLimit', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Rate-Limit;', baseType='Integer', containerType='null', containerTypeMapped='null', title='null', unescapedDescription='calls per hour allowed by the user', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
+}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, isPrimitiveType=true, isModel=false, isContainer=false, isString=true, isNumeric=false, isInteger=false, isShort=false, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=false, isUuid=false, isUri=false, isEmail=false, isPassword=false, isFreeFormObject=false, isArray=false, isMap=false, isOptional=false, isEnum=false, isInnerEnum=false, isEnumRef=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, isNew=false, isOverridden=null, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='setCookie', nameInPascalCase='SetCookie', nameInSnakeCase='SET_COOKIE', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, uniqueItemsBoolean=null, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, isVoid=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, hasSanitizedName=true, requiredVarsMap=null, ref=null, schemaIsFromAdditionalProperties=false, isBooleanSchemaTrue=false, isBooleanSchemaFalse=false, format=null, dependentRequired=null, contains=null}, CodegenProperty{openApiType='integer', baseName='X-Rate-Limit', complexType='null', getter='getxRateLimit', setter='setxRateLimit', description='calls per hour allowed by the user', dataType='Integer', datatypeWithEnum='Integer', dataFormat='int32', name='xRateLimit', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Rate-Limit;', baseType='Integer', containerType='null', containerTypeMapped='null', title='null', unescapedDescription='calls per hour allowed by the user', unescapedDefaultValue='null', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
"format" : "int32",
"type" : "integer"
-}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, isPrimitiveType=true, isModel=false, isContainer=false, isString=false, isNumeric=true, isInteger=true, isShort=true, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=false, isUuid=false, isUri=false, isEmail=false, isPassword=false, isFreeFormObject=false, isArray=false, isMap=false, isOptional=false, isEnum=false, isInnerEnum=false, isEnumRef=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, isNew=false, isOverridden=null, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='xRateLimit', nameInPascalCase='XRateLimit', nameInSnakeCase='X_RATE_LIMIT', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, uniqueItemsBoolean=null, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, isVoid=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, hasSanitizedName=true, requiredVarsMap=null, ref=null, schemaIsFromAdditionalProperties=false, isBooleanSchemaTrue=false, isBooleanSchemaFalse=false, format=int32, dependentRequired=null, contains=null}, CodegenProperty{openApiType='string', baseName='X-Expires-After', complexType='Date', getter='getxExpiresAfter', setter='setxExpiresAfter', description='date in UTC when token expires', dataType='Date', datatypeWithEnum='Date', dataFormat='date-time', name='xExpiresAfter', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Expires-After;', baseType='Date', containerType='null', containerTypeMapped='null', title='null', unescapedDescription='date in UTC when token expires', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
+}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, isPrimitiveType=true, isModel=false, isContainer=false, isString=false, isNumeric=true, isInteger=true, isShort=true, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=false, isUuid=false, isUri=false, isEmail=false, isPassword=false, isFreeFormObject=false, isArray=false, isMap=false, isOptional=false, isEnum=false, isInnerEnum=false, isEnumRef=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, isNew=false, isOverridden=null, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='xRateLimit', nameInPascalCase='XRateLimit', nameInSnakeCase='X_RATE_LIMIT', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, uniqueItemsBoolean=null, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, isVoid=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, hasSanitizedName=true, requiredVarsMap=null, ref=null, schemaIsFromAdditionalProperties=false, isBooleanSchemaTrue=false, isBooleanSchemaFalse=false, format=int32, dependentRequired=null, contains=null}, CodegenProperty{openApiType='string', baseName='X-Expires-After', complexType='Date', getter='getxExpiresAfter', setter='setxExpiresAfter', description='date in UTC when token expires', dataType='Date', datatypeWithEnum='Date', dataFormat='date-time', name='xExpiresAfter', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Expires-After;', baseType='Date', containerType='null', containerTypeMapped='null', title='null', unescapedDescription='date in UTC when token expires', unescapedDefaultValue='null', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
"format" : "date-time",
"type" : "string"
}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, isPrimitiveType=false, isModel=false, isContainer=false, isString=false, isNumeric=false, isInteger=false, isShort=false, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=true, isUuid=false, isUri=false, isEmail=false, isPassword=false, isFreeFormObject=false, isArray=false, isMap=false, isOptional=false, isEnum=false, isInnerEnum=false, isEnumRef=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, isNew=false, isOverridden=null, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='xExpiresAfter', nameInPascalCase='XExpiresAfter', nameInSnakeCase='X_EXPIRES_AFTER', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, uniqueItemsBoolean=null, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, isVoid=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false, hasSanitizedName=true, requiredVarsMap=null, ref=null, schemaIsFromAdditionalProperties=false, isBooleanSchemaTrue=false, isBooleanSchemaFalse=false, format=date-time, dependentRequired=null, contains=null}]
diff --git a/samples/server/petstore/kotlin-misk-config/.openapi-generator/FILES b/samples/server/petstore/kotlin-misk-config/.openapi-generator/FILES
index 594e5efd5ba2..9ef76d5d361c 100644
--- a/samples/server/petstore/kotlin-misk-config/.openapi-generator/FILES
+++ b/samples/server/petstore/kotlin-misk-config/.openapi-generator/FILES
@@ -2,6 +2,7 @@ README.md
build.gradle.kts
docs/ApiResponse.md
docs/Category.md
+docs/EscapingEdgeCases.md
docs/Order.md
docs/Pet.md
docs/PetApi.md
@@ -15,6 +16,7 @@ src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt
src/main/kotlin/org/openapitools/server/api/api/StoreApiAction.kt
src/main/kotlin/org/openapitools/server/api/api/UserApiAction.kt
src/main/kotlin/org/openapitools/server/api/model/Category.kt
+src/main/kotlin/org/openapitools/server/api/model/EscapingEdgeCases.kt
src/main/kotlin/org/openapitools/server/api/model/ModelApiResponse.kt
src/main/kotlin/org/openapitools/server/api/model/Order.kt
src/main/kotlin/org/openapitools/server/api/model/Pet.kt
diff --git a/samples/server/petstore/kotlin-misk-config/README.md b/samples/server/petstore/kotlin-misk-config/README.md
index 8fc27a719a91..a681a02dae40 100644
--- a/samples/server/petstore/kotlin-misk-config/README.md
+++ b/samples/server/petstore/kotlin-misk-config/README.md
@@ -11,6 +11,7 @@
*PetApi* | [**deletePet**](Apis/docs/PetApi.md#deletepet) | **Delete** /pet/{petId} | Deletes a pet
*PetApi* | [**findPetsByStatus**](Apis/docs/PetApi.md#findpetsbystatus) | **Get** /pet/findByStatus | Finds Pets by status
*PetApi* | [**findPetsByTags**](Apis/docs/PetApi.md#findpetsbytags) | **Get** /pet/findByTags | Finds Pets by tags
+ *PetApi* | [**getEscapingEdgeCases**](Apis/docs/PetApi.md#getescapingedgecases) | **Get** /pet/escaping | Test escaping: $dollar, backslash \\ and quote \"
*PetApi* | [**getPetById**](Apis/docs/PetApi.md#getpetbyid) | **Get** /pet/{petId} | Find pet by ID
*PetApi* | [**updatePet**](Apis/docs/PetApi.md#updatepet) | **Put** /pet | Update an existing pet
*PetApi* | [**updatePetWithForm**](Apis/docs/PetApi.md#updatepetwithform) | **Post** /pet/{petId} | Updates a pet in the store with form data
@@ -33,6 +34,7 @@
## Documentation for Models
- [org.openapitools.server.api.model.Category](Models/docs/Category.md)
+ - [org.openapitools.server.api.model.EscapingEdgeCases](Models/docs/EscapingEdgeCases.md)
- [org.openapitools.server.api.model.ModelApiResponse](Models/docs/ModelApiResponse.md)
- [org.openapitools.server.api.model.Order](Models/docs/Order.md)
- [org.openapitools.server.api.model.Pet](Models/docs/Pet.md)
diff --git a/samples/server/petstore/kotlin-misk-config/docs/EscapingEdgeCases.md b/samples/server/petstore/kotlin-misk-config/docs/EscapingEdgeCases.md
new file mode 100644
index 000000000000..4ab2399cccc8
--- /dev/null
+++ b/samples/server/petstore/kotlin-misk-config/docs/EscapingEdgeCases.md
@@ -0,0 +1,11 @@
+
+# EscapingEdgeCases
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**dollarDefault** | **kotlin.String** | A string whose default has \$dollar, backslash \\, quote " and comment-close */ | [optional]
+**regularProp** | **kotlin.String** | Regular property for baseline comparison | [optional]
+
+
+
diff --git a/samples/server/petstore/kotlin-misk-config/docs/PetApi.md b/samples/server/petstore/kotlin-misk-config/docs/PetApi.md
index 99dbe788edb0..5e073104a909 100644
--- a/samples/server/petstore/kotlin-misk-config/docs/PetApi.md
+++ b/samples/server/petstore/kotlin-misk-config/docs/PetApi.md
@@ -8,6 +8,7 @@ Method | HTTP request | Description
[**deletePet**](PetApi.md#deletePet) | **Delete** /pet/{petId} | Deletes a pet
[**findPetsByStatus**](PetApi.md#findPetsByStatus) | **Get** /pet/findByStatus | Finds Pets by status
[**findPetsByTags**](PetApi.md#findPetsByTags) | **Get** /pet/findByTags | Finds Pets by tags
+[**getEscapingEdgeCases**](PetApi.md#getEscapingEdgeCases) | **Get** /pet/escaping | Test escaping: \$dollar, backslash \\ and quote "
[**getPetById**](PetApi.md#getPetById) | **Get** /pet/{petId} | Find pet by ID
[**updatePet**](PetApi.md#updatePet) | **Put** /pet | Update an existing pet
[**updatePetWithForm**](PetApi.md#updatePetWithForm) | **Post** /pet/{petId} | Updates a pet in the store with form data
@@ -203,6 +204,49 @@ Name | Type | Description | Notes
- **Content-Type**: Not defined
- **Accept**: APPLICATION_XML, APPLICATION_JSON
+
+# **getEscapingEdgeCases**
+> EscapingEdgeCases getEscapingEdgeCases()
+
+Test escaping: \$dollar, backslash \\ and quote "
+
+Retrieves edge-cases for escaping: \$var, \\, ", */
+
+### Example
+```kotlin
+// Import classes:
+//import org.openapitools.infrastructure.*
+//import org.openapitools.server.api.model.*
+
+val apiInstance = PetApi()
+try {
+ val result : EscapingEdgeCases = apiInstance.getEscapingEdgeCases()
+ println(result)
+} catch (e: ClientException) {
+ println("4xx response calling PetApi#getEscapingEdgeCases")
+ e.printStackTrace()
+} catch (e: ServerException) {
+ println("5xx response calling PetApi#getEscapingEdgeCases")
+ e.printStackTrace()
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**EscapingEdgeCases**](EscapingEdgeCases.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: APPLICATION_JSON
+
# **getPetById**
> Pet getPetById(petId)
diff --git a/samples/server/petstore/kotlin-misk-config/docs/StoreApi.md b/samples/server/petstore/kotlin-misk-config/docs/StoreApi.md
index d3add9f5776a..8170140ea27d 100644
--- a/samples/server/petstore/kotlin-misk-config/docs/StoreApi.md
+++ b/samples/server/petstore/kotlin-misk-config/docs/StoreApi.md
@@ -105,7 +105,7 @@ This endpoint does not need any parameter.
Find purchase order by ID
-For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions
+For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions
### Example
```kotlin
diff --git a/samples/server/petstore/kotlin-misk-config/src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt b/samples/server/petstore/kotlin-misk-config/src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt
index f98d5a463e85..611c58b0c9e4 100644
--- a/samples/server/petstore/kotlin-misk-config/src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt
+++ b/samples/server/petstore/kotlin-misk-config/src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt
@@ -28,6 +28,7 @@ import misk.web.RequestHeader
import misk.web.Response
import misk.web.ResponseContentType
import misk.web.mediatype.MediaTypes
+import org.openapitools.server.api.model.EscapingEdgeCases
import org.openapitools.server.api.model.ModelApiResponse
import org.openapitools.server.api.model.Pet
@@ -83,6 +84,16 @@ class PetApiAction @Inject constructor(
TODO()
}
+ @Get("samplePrefix/pet/escaping")
+ @Description("Test escaping: \$dollar, backslash \\ and quote \"")
+ @ResponseContentType(MediaTypes.APPLICATION_JSON)
+ @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 2.0)
+ @Suppress("unused")
+ fun getEscapingEdgeCases(
+ ): EscapingEdgeCases {
+ TODO()
+ }
+
@Get("samplePrefix/pet/{petId}")
@Description("Find pet by ID")
@ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON)
diff --git a/samples/server/petstore/kotlin-misk-config/src/main/kotlin/org/openapitools/server/api/model/EscapingEdgeCases.kt b/samples/server/petstore/kotlin-misk-config/src/main/kotlin/org/openapitools/server/api/model/EscapingEdgeCases.kt
new file mode 100644
index 000000000000..bdc5d466d1e5
--- /dev/null
+++ b/samples/server/petstore/kotlin-misk-config/src/main/kotlin/org/openapitools/server/api/model/EscapingEdgeCases.kt
@@ -0,0 +1,11 @@
+package org.openapitools.server.api.model
+
+import com.squareup.moshi.JsonClass
+
+@JsonClass(generateAdapter = true)
+data class EscapingEdgeCases(
+ /** A string whose default has $dollar, backslash \\, quote \" and comment-close *_/ */
+ val dollarDefault: kotlin.String? = "hello \$world, backslash=\\, quote=\", end */",
+ /** Regular property for baseline comparison */
+ val regularProp: kotlin.String? = null
+)
diff --git a/samples/server/petstore/kotlin-misk/.openapi-generator/FILES b/samples/server/petstore/kotlin-misk/.openapi-generator/FILES
index 594e5efd5ba2..9ef76d5d361c 100644
--- a/samples/server/petstore/kotlin-misk/.openapi-generator/FILES
+++ b/samples/server/petstore/kotlin-misk/.openapi-generator/FILES
@@ -2,6 +2,7 @@ README.md
build.gradle.kts
docs/ApiResponse.md
docs/Category.md
+docs/EscapingEdgeCases.md
docs/Order.md
docs/Pet.md
docs/PetApi.md
@@ -15,6 +16,7 @@ src/main/kotlin/org/openapitools/server/api/api/PetStoreModule.kt
src/main/kotlin/org/openapitools/server/api/api/StoreApiAction.kt
src/main/kotlin/org/openapitools/server/api/api/UserApiAction.kt
src/main/kotlin/org/openapitools/server/api/model/Category.kt
+src/main/kotlin/org/openapitools/server/api/model/EscapingEdgeCases.kt
src/main/kotlin/org/openapitools/server/api/model/ModelApiResponse.kt
src/main/kotlin/org/openapitools/server/api/model/Order.kt
src/main/kotlin/org/openapitools/server/api/model/Pet.kt
diff --git a/samples/server/petstore/kotlin-misk/README.md b/samples/server/petstore/kotlin-misk/README.md
index 8fc27a719a91..a681a02dae40 100644
--- a/samples/server/petstore/kotlin-misk/README.md
+++ b/samples/server/petstore/kotlin-misk/README.md
@@ -11,6 +11,7 @@
*PetApi* | [**deletePet**](Apis/docs/PetApi.md#deletepet) | **Delete** /pet/{petId} | Deletes a pet
*PetApi* | [**findPetsByStatus**](Apis/docs/PetApi.md#findpetsbystatus) | **Get** /pet/findByStatus | Finds Pets by status
*PetApi* | [**findPetsByTags**](Apis/docs/PetApi.md#findpetsbytags) | **Get** /pet/findByTags | Finds Pets by tags
+ *PetApi* | [**getEscapingEdgeCases**](Apis/docs/PetApi.md#getescapingedgecases) | **Get** /pet/escaping | Test escaping: $dollar, backslash \\ and quote \"
*PetApi* | [**getPetById**](Apis/docs/PetApi.md#getpetbyid) | **Get** /pet/{petId} | Find pet by ID
*PetApi* | [**updatePet**](Apis/docs/PetApi.md#updatepet) | **Put** /pet | Update an existing pet
*PetApi* | [**updatePetWithForm**](Apis/docs/PetApi.md#updatepetwithform) | **Post** /pet/{petId} | Updates a pet in the store with form data
@@ -33,6 +34,7 @@
## Documentation for Models
- [org.openapitools.server.api.model.Category](Models/docs/Category.md)
+ - [org.openapitools.server.api.model.EscapingEdgeCases](Models/docs/EscapingEdgeCases.md)
- [org.openapitools.server.api.model.ModelApiResponse](Models/docs/ModelApiResponse.md)
- [org.openapitools.server.api.model.Order](Models/docs/Order.md)
- [org.openapitools.server.api.model.Pet](Models/docs/Pet.md)
diff --git a/samples/server/petstore/kotlin-misk/docs/EscapingEdgeCases.md b/samples/server/petstore/kotlin-misk/docs/EscapingEdgeCases.md
new file mode 100644
index 000000000000..4ab2399cccc8
--- /dev/null
+++ b/samples/server/petstore/kotlin-misk/docs/EscapingEdgeCases.md
@@ -0,0 +1,11 @@
+
+# EscapingEdgeCases
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**dollarDefault** | **kotlin.String** | A string whose default has \$dollar, backslash \\, quote " and comment-close */ | [optional]
+**regularProp** | **kotlin.String** | Regular property for baseline comparison | [optional]
+
+
+
diff --git a/samples/server/petstore/kotlin-misk/docs/PetApi.md b/samples/server/petstore/kotlin-misk/docs/PetApi.md
index 99dbe788edb0..5e073104a909 100644
--- a/samples/server/petstore/kotlin-misk/docs/PetApi.md
+++ b/samples/server/petstore/kotlin-misk/docs/PetApi.md
@@ -8,6 +8,7 @@ Method | HTTP request | Description
[**deletePet**](PetApi.md#deletePet) | **Delete** /pet/{petId} | Deletes a pet
[**findPetsByStatus**](PetApi.md#findPetsByStatus) | **Get** /pet/findByStatus | Finds Pets by status
[**findPetsByTags**](PetApi.md#findPetsByTags) | **Get** /pet/findByTags | Finds Pets by tags
+[**getEscapingEdgeCases**](PetApi.md#getEscapingEdgeCases) | **Get** /pet/escaping | Test escaping: \$dollar, backslash \\ and quote "
[**getPetById**](PetApi.md#getPetById) | **Get** /pet/{petId} | Find pet by ID
[**updatePet**](PetApi.md#updatePet) | **Put** /pet | Update an existing pet
[**updatePetWithForm**](PetApi.md#updatePetWithForm) | **Post** /pet/{petId} | Updates a pet in the store with form data
@@ -203,6 +204,49 @@ Name | Type | Description | Notes
- **Content-Type**: Not defined
- **Accept**: APPLICATION_XML, APPLICATION_JSON
+
+# **getEscapingEdgeCases**
+> EscapingEdgeCases getEscapingEdgeCases()
+
+Test escaping: \$dollar, backslash \\ and quote "
+
+Retrieves edge-cases for escaping: \$var, \\, ", */
+
+### Example
+```kotlin
+// Import classes:
+//import org.openapitools.infrastructure.*
+//import org.openapitools.server.api.model.*
+
+val apiInstance = PetApi()
+try {
+ val result : EscapingEdgeCases = apiInstance.getEscapingEdgeCases()
+ println(result)
+} catch (e: ClientException) {
+ println("4xx response calling PetApi#getEscapingEdgeCases")
+ e.printStackTrace()
+} catch (e: ServerException) {
+ println("5xx response calling PetApi#getEscapingEdgeCases")
+ e.printStackTrace()
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**EscapingEdgeCases**](EscapingEdgeCases.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: APPLICATION_JSON
+
# **getPetById**
> Pet getPetById(petId)
diff --git a/samples/server/petstore/kotlin-misk/docs/StoreApi.md b/samples/server/petstore/kotlin-misk/docs/StoreApi.md
index d3add9f5776a..8170140ea27d 100644
--- a/samples/server/petstore/kotlin-misk/docs/StoreApi.md
+++ b/samples/server/petstore/kotlin-misk/docs/StoreApi.md
@@ -105,7 +105,7 @@ This endpoint does not need any parameter.
Find purchase order by ID
-For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions
+For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions
### Example
```kotlin
diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt
index 1a8c806566d5..5c9e639ac479 100644
--- a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt
+++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/api/PetApiAction.kt
@@ -28,6 +28,7 @@ import misk.web.RequestHeader
import misk.web.Response
import misk.web.ResponseContentType
import misk.web.mediatype.MediaTypes
+import org.openapitools.server.api.model.EscapingEdgeCases
import org.openapitools.server.api.model.ModelApiResponse
import org.openapitools.server.api.model.Pet
@@ -79,6 +80,15 @@ class PetApiAction @Inject constructor(
TODO()
}
+ @Get("/pet/escaping")
+ @Description("Test escaping: \$dollar, backslash \\ and quote \"")
+ @ResponseContentType(MediaTypes.APPLICATION_JSON)
+ @LogRequestResponse(bodySampling = 1.0, errorBodySampling = 1.0)
+ fun getEscapingEdgeCases(
+ ): EscapingEdgeCases {
+ TODO()
+ }
+
@Get("/pet/{petId}")
@Description("Find pet by ID")
@ResponseContentType(MediaTypes.APPLICATION_XML, MediaTypes.APPLICATION_JSON)
diff --git a/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/EscapingEdgeCases.kt b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/EscapingEdgeCases.kt
new file mode 100644
index 000000000000..bdc5d466d1e5
--- /dev/null
+++ b/samples/server/petstore/kotlin-misk/src/main/kotlin/org/openapitools/server/api/model/EscapingEdgeCases.kt
@@ -0,0 +1,11 @@
+package org.openapitools.server.api.model
+
+import com.squareup.moshi.JsonClass
+
+@JsonClass(generateAdapter = true)
+data class EscapingEdgeCases(
+ /** A string whose default has $dollar, backslash \\, quote \" and comment-close *_/ */
+ val dollarDefault: kotlin.String? = "hello \$world, backslash=\\, quote=\", end */",
+ /** Regular property for baseline comparison */
+ val regularProp: kotlin.String? = null
+)
diff --git a/samples/server/petstore/kotlin-spring-default/.openapi-generator/FILES b/samples/server/petstore/kotlin-spring-default/.openapi-generator/FILES
index 98932e549209..6000fcacc452 100644
--- a/samples/server/petstore/kotlin-spring-default/.openapi-generator/FILES
+++ b/samples/server/petstore/kotlin-spring-default/.openapi-generator/FILES
@@ -22,6 +22,7 @@ src/main/kotlin/org/openapitools/model/Category.kt
src/main/kotlin/org/openapitools/model/ModelApiResponse.kt
src/main/kotlin/org/openapitools/model/Order.kt
src/main/kotlin/org/openapitools/model/Pet.kt
+src/main/kotlin/org/openapitools/model/PetWithSpecialProps.kt
src/main/kotlin/org/openapitools/model/Tag.kt
src/main/kotlin/org/openapitools/model/User.kt
src/main/kotlin/org/openapitools/model/UserOrPet.kt
diff --git a/samples/server/petstore/kotlin-spring-default/src/main/kotlin/org/openapitools/model/PetWithSpecialProps.kt b/samples/server/petstore/kotlin-spring-default/src/main/kotlin/org/openapitools/model/PetWithSpecialProps.kt
new file mode 100644
index 000000000000..39a4dba2dd86
--- /dev/null
+++ b/samples/server/petstore/kotlin-spring-default/src/main/kotlin/org/openapitools/model/PetWithSpecialProps.kt
@@ -0,0 +1,31 @@
+package org.openapitools.model
+
+import java.util.Objects
+import com.fasterxml.jackson.annotation.JsonProperty
+import javax.validation.constraints.DecimalMax
+import javax.validation.constraints.DecimalMin
+import javax.validation.constraints.Email
+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.v3.oas.annotations.media.Schema
+
+/**
+ * Model with $-prefixed property names for escaping tests (Issue 20502)
+ * @param dollarId Property with $-prefix in name; default has $dollar and backslash \\
+ * @param nameDollarSuffix Property with $ mid-name; description has backslash \\ and quote \"
+ */
+data class PetWithSpecialProps(
+
+ @Schema(example = "null", description = "Property with \$-prefix in name; default has \$dollar and backslash \\")
+ @get:JsonProperty("\$id") val dollarId: kotlin.String? = "hello \$world",
+
+ @Schema(example = "null", description = "Property with \$ mid-name; description has backslash \\ and quote \"")
+ @get:JsonProperty("name\$Suffix") val nameDollarSuffix: kotlin.String? = null
+) {
+
+}
+
diff --git a/samples/server/petstore/kotlin-spring-default/src/main/resources/openapi.yaml b/samples/server/petstore/kotlin-spring-default/src/main/resources/openapi.yaml
index 1f2e34812c4b..cba7c9c31e12 100644
--- a/samples/server/petstore/kotlin-spring-default/src/main/resources/openapi.yaml
+++ b/samples/server/petstore/kotlin-spring-default/src/main/resources/openapi.yaml
@@ -856,6 +856,20 @@ components:
- items:
type: string
type: array
+ PetWithSpecialProps:
+ description: Model with $-prefixed property names for escaping tests (Issue
+ 20502)
+ properties:
+ $id:
+ default: hello $world
+ description: Property with $-prefix in name; default has $dollar and backslash
+ \
+ type: string
+ name$Suffix:
+ description: Property with $ mid-name; description has backslash \ and quote
+ "
+ type: string
+ type: object
updatePetWithForm_request:
properties:
name:
diff --git a/samples/server/petstore/kotlin-springboot-delegate/src/main/kotlin/org/openapitools/api/PetApiDelegate.kt b/samples/server/petstore/kotlin-springboot-delegate/src/main/kotlin/org/openapitools/api/PetApiDelegate.kt
index 7b43df537880..762f8258eebd 100644
--- a/samples/server/petstore/kotlin-springboot-delegate/src/main/kotlin/org/openapitools/api/PetApiDelegate.kt
+++ b/samples/server/petstore/kotlin-springboot-delegate/src/main/kotlin/org/openapitools/api/PetApiDelegate.kt
@@ -26,11 +26,11 @@ interface PetApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "{ \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\"}")
+ ApiUtil.setExampleResponse(request, "application/json", "{\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 123456789 aeiou doggie aeiou 123456789 aeiou aeiou")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n \n 123456789\n aeiou\n \n doggie\n \n aeiou\n \n \n \n 123456789\n aeiou\n \n \n aeiou\n")
break
}
}
@@ -57,11 +57,11 @@ interface PetApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "[ { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\"}, { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\"} ]")
+ ApiUtil.setExampleResponse(request, "application/json", "[ {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}, {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n} ]")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 123456789 aeiou doggie aeiou 123456789 aeiou aeiou")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n \n 123456789\n aeiou\n \n doggie\n \n aeiou\n \n \n \n 123456789\n aeiou\n \n \n aeiou\n")
break
}
}
@@ -78,11 +78,11 @@ interface PetApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "[ { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\"}, { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\"} ]")
+ ApiUtil.setExampleResponse(request, "application/json", "[ {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}, {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n} ]")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 123456789 aeiou doggie aeiou 123456789 aeiou aeiou")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n \n 123456789\n aeiou\n \n doggie\n \n aeiou\n \n \n \n 123456789\n aeiou\n \n \n aeiou\n")
break
}
}
@@ -99,11 +99,11 @@ interface PetApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "{ \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\"}")
+ ApiUtil.setExampleResponse(request, "application/json", "{\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 123456789 aeiou doggie aeiou 123456789 aeiou aeiou")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n \n 123456789\n aeiou\n \n doggie\n \n aeiou\n \n \n \n 123456789\n aeiou\n \n \n aeiou\n")
break
}
}
@@ -120,11 +120,11 @@ interface PetApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "{ \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\"}")
+ ApiUtil.setExampleResponse(request, "application/json", "{\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 doggie aeiou aeiou")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n doggie\n \n aeiou\n \n \n \n aeiou\n")
break
}
}
@@ -154,7 +154,7 @@ interface PetApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "{ \"code\" : 0, \"type\" : \"type\", \"message\" : \"message\"}")
+ ApiUtil.setExampleResponse(request, "application/json", "{\n \"code\" : 0,\n \"type\" : \"type\",\n \"message\" : \"message\"\n}")
break
}
}
diff --git a/samples/server/petstore/kotlin-springboot-delegate/src/main/kotlin/org/openapitools/api/StoreApiDelegate.kt b/samples/server/petstore/kotlin-springboot-delegate/src/main/kotlin/org/openapitools/api/StoreApiDelegate.kt
index 5470648bd4ee..ffe7f6ac5a94 100644
--- a/samples/server/petstore/kotlin-springboot-delegate/src/main/kotlin/org/openapitools/api/StoreApiDelegate.kt
+++ b/samples/server/petstore/kotlin-springboot-delegate/src/main/kotlin/org/openapitools/api/StoreApiDelegate.kt
@@ -43,11 +43,11 @@ interface StoreApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "{ \"petId\" : 6, \"quantity\" : 1, \"id\" : 0, \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\", \"complete\" : false, \"status\" : \"placed\"}")
+ ApiUtil.setExampleResponse(request, "application/json", "{\n \"petId\" : 6,\n \"quantity\" : 1,\n \"id\" : 0,\n \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\",\n \"complete\" : false,\n \"status\" : \"placed\"\n}")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 123456789 123 2000-01-23T04:56:07.000Z aeiou true")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n 123456789\n 123\n 2000-01-23T04:56:07.000Z\n aeiou\n true\n")
break
}
}
@@ -64,11 +64,11 @@ interface StoreApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "{ \"petId\" : 6, \"quantity\" : 1, \"id\" : 0, \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\", \"complete\" : false, \"status\" : \"placed\"}")
+ ApiUtil.setExampleResponse(request, "application/json", "{\n \"petId\" : 6,\n \"quantity\" : 1,\n \"id\" : 0,\n \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\",\n \"complete\" : false,\n \"status\" : \"placed\"\n}")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 123456789 123 2000-01-23T04:56:07.000Z aeiou true")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n 123456789\n 123\n 2000-01-23T04:56:07.000Z\n aeiou\n true\n")
break
}
}
diff --git a/samples/server/petstore/kotlin-springboot-delegate/src/main/kotlin/org/openapitools/api/UserApiDelegate.kt b/samples/server/petstore/kotlin-springboot-delegate/src/main/kotlin/org/openapitools/api/UserApiDelegate.kt
index e8033bdf5836..e19f45643c26 100644
--- a/samples/server/petstore/kotlin-springboot-delegate/src/main/kotlin/org/openapitools/api/UserApiDelegate.kt
+++ b/samples/server/petstore/kotlin-springboot-delegate/src/main/kotlin/org/openapitools/api/UserApiDelegate.kt
@@ -61,11 +61,11 @@ interface UserApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "{ \"firstName\" : \"firstName\", \"lastName\" : \"lastName\", \"password\" : \"password\", \"userStatus\" : 6, \"phone\" : \"phone\", \"id\" : 0, \"email\" : \"email\", \"username\" : \"username\"}")
+ ApiUtil.setExampleResponse(request, "application/json", "{\n \"firstName\" : \"firstName\",\n \"lastName\" : \"lastName\",\n \"password\" : \"password\",\n \"userStatus\" : 6,\n \"phone\" : \"phone\",\n \"id\" : 0,\n \"email\" : \"email\",\n \"username\" : \"username\"\n}")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 aeiou aeiou aeiou aeiou aeiou aeiou 123")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n aeiou\n aeiou\n aeiou\n aeiou\n aeiou\n aeiou\n 123\n")
break
}
}
diff --git a/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/PetApiDelegate.kt b/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/PetApiDelegate.kt
index 8907dac1a7a7..48a8c679334e 100644
--- a/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/PetApiDelegate.kt
+++ b/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/PetApiDelegate.kt
@@ -43,11 +43,11 @@ interface PetApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "[ { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\"}, { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\"} ]")
+ ApiUtil.setExampleResponse(request, "application/json", "[ {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}, {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n} ]")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 123456789 aeiou doggie aeiou 123456789 aeiou aeiou")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n \n 123456789\n aeiou\n \n doggie\n \n aeiou\n \n \n \n 123456789\n aeiou\n \n \n aeiou\n")
break
}
}
@@ -64,11 +64,11 @@ interface PetApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "[ { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\"}, { \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\"} ]")
+ ApiUtil.setExampleResponse(request, "application/json", "[ {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}, {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n} ]")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 123456789 aeiou doggie aeiou 123456789 aeiou aeiou")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n \n 123456789\n aeiou\n \n doggie\n \n aeiou\n \n \n \n 123456789\n aeiou\n \n \n aeiou\n")
break
}
}
@@ -85,11 +85,11 @@ interface PetApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "{ \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ], \"name\" : \"doggie\", \"id\" : 0, \"category\" : { \"name\" : \"name\", \"id\" : 6 }, \"tags\" : [ { \"name\" : \"name\", \"id\" : 1 }, { \"name\" : \"name\", \"id\" : 1 } ], \"status\" : \"available\"}")
+ ApiUtil.setExampleResponse(request, "application/json", "{\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 123456789 aeiou doggie aeiou 123456789 aeiou aeiou")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n \n 123456789\n aeiou\n \n doggie\n \n aeiou\n \n \n \n 123456789\n aeiou\n \n \n aeiou\n")
break
}
}
@@ -128,7 +128,7 @@ interface PetApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "{ \"code\" : 0, \"type\" : \"type\", \"message\" : \"message\"}")
+ ApiUtil.setExampleResponse(request, "application/json", "{\n \"code\" : 0,\n \"type\" : \"type\",\n \"message\" : \"message\"\n}")
break
}
}
diff --git a/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/StoreApiDelegate.kt b/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/StoreApiDelegate.kt
index 7c9aea227800..5ad88f2b6bce 100644
--- a/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/StoreApiDelegate.kt
+++ b/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/StoreApiDelegate.kt
@@ -41,11 +41,11 @@ interface StoreApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "{ \"petId\" : 6, \"quantity\" : 1, \"id\" : 0, \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\", \"complete\" : false, \"status\" : \"placed\"}")
+ ApiUtil.setExampleResponse(request, "application/json", "{\n \"petId\" : 6,\n \"quantity\" : 1,\n \"id\" : 0,\n \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\",\n \"complete\" : false,\n \"status\" : \"placed\"\n}")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 123456789 123 2000-01-23T04:56:07.000Z aeiou true")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n 123456789\n 123\n 2000-01-23T04:56:07.000Z\n aeiou\n true\n")
break
}
}
@@ -62,11 +62,11 @@ interface StoreApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "{ \"petId\" : 6, \"quantity\" : 1, \"id\" : 0, \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\", \"complete\" : false, \"status\" : \"placed\"}")
+ ApiUtil.setExampleResponse(request, "application/json", "{\n \"petId\" : 6,\n \"quantity\" : 1,\n \"id\" : 0,\n \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\",\n \"complete\" : false,\n \"status\" : \"placed\"\n}")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 123456789 123 2000-01-23T04:56:07.000Z aeiou true")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n 123456789\n 123\n 2000-01-23T04:56:07.000Z\n aeiou\n true\n")
break
}
}
diff --git a/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/UserApiDelegate.kt b/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/UserApiDelegate.kt
index 70bfb0eae387..8af5766e9065 100644
--- a/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/UserApiDelegate.kt
+++ b/samples/server/petstore/kotlin-springboot-no-response-entity-delegate/src/main/kotlin/org/openapitools/api/UserApiDelegate.kt
@@ -59,11 +59,11 @@ interface UserApiDelegate {
getRequest().ifPresent { request ->
for (mediaType in MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
- ApiUtil.setExampleResponse(request, "application/json", "{ \"firstName\" : \"firstName\", \"lastName\" : \"lastName\", \"password\" : \"password\", \"userStatus\" : 6, \"phone\" : \"phone\", \"id\" : 0, \"email\" : \"email\", \"username\" : \"username\"}")
+ ApiUtil.setExampleResponse(request, "application/json", "{\n \"firstName\" : \"firstName\",\n \"lastName\" : \"lastName\",\n \"password\" : \"password\",\n \"userStatus\" : 6,\n \"phone\" : \"phone\",\n \"id\" : 0,\n \"email\" : \"email\",\n \"username\" : \"username\"\n}")
break
}
if (mediaType.isCompatibleWith(MediaType.valueOf("application/xml"))) {
- ApiUtil.setExampleResponse(request, "application/xml", " 123456789 aeiou aeiou aeiou aeiou aeiou aeiou 123")
+ ApiUtil.setExampleResponse(request, "application/xml", "\n 123456789\n aeiou\n aeiou\n aeiou\n aeiou\n aeiou\n aeiou\n 123\n")
break
}
}