diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java index c46341ec5800..4b98b531b262 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaHttpServerCodegen.java @@ -251,7 +251,7 @@ public CodegenParameter fromParameter(Parameter parameter, Set imports) param.dataType = "String"; } if (!param.required) { - param.vendorExtensions.put("hasDefaultValue", param.defaultValue != null); + param.vendorExtensions.put("x-has-default-value", param.defaultValue != null); // Escaping default string values if (param.defaultValue != null && param.dataType.equals("String")) { param.defaultValue = String.format(Locale.ROOT, "\"%s\"", param.defaultValue); @@ -324,7 +324,7 @@ protected static void addPathMatcher(CodegenOperation codegenOperation) { } pathMatchers.getLast().hasMore = false; - codegenOperation.vendorExtensions.put("paths", pathMatchers); + codegenOperation.vendorExtensions.put("x-paths", pathMatchers); } public static String PATH_MATCHER_PATTERNS_KEY = "pathMatcherPatterns"; @@ -409,11 +409,11 @@ public static void marshallingPostProcessor(Map objs) { entityMarshallerTypes.add(marshaller); operationSpecificMarshallers.add(marshaller); } - response.vendorExtensions.put("isDefault", response.code.equals("0")); + response.vendorExtensions.put("x-is-default", response.code.equals("0")); } - op.vendorExtensions.put("specificMarshallers", operationSpecificMarshallers); - op.vendorExtensions.put("fileParams", fileParams); - op.vendorExtensions.put("nonFileParams", nonFileParams); + op.vendorExtensions.put("x-specific-marshallers", operationSpecificMarshallers); + op.vendorExtensions.put("x-file-params", fileParams); + op.vendorExtensions.put("x-non-file-params", nonFileParams); } } diff --git a/modules/openapi-generator/src/main/resources/scala-akka-http-server/api.mustache b/modules/openapi-generator/src/main/resources/scala-akka-http-server/api.mustache index 0fcceddbbfc4..cc9e7b690399 100644 --- a/modules/openapi-generator/src/main/resources/scala-akka-http-server/api.mustache +++ b/modules/openapi-generator/src/main/resources/scala-akka-http-server/api.mustache @@ -38,9 +38,9 @@ class {{classname}}( lazy val route: Route = {{#operation}} - path({{#vendorExtensions.paths}}{{#isText}}"{{/isText}}{{value}}{{#isText}}"{{/isText}}{{#hasMore}} / {{/hasMore}}{{/vendorExtensions.paths}}) { {{^pathParams.isEmpty}}({{#pathParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/pathParams}}) => {{/pathParams.isEmpty}} + path({{#vendorExtensions.x-paths}}{{#isText}}"{{/isText}}{{value}}{{#isText}}"{{/isText}}{{#hasMore}} / {{/hasMore}}{{/vendorExtensions.x-paths}}) { {{^pathParams.isEmpty}}({{#pathParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/pathParams}}) => {{/pathParams.isEmpty}} {{#lambda.lowercase}}{{httpMethod}}{{/lambda.lowercase}} { {{^queryParams.isEmpty}} - parameters({{#queryParams}}"{{baseName}}".as[{{dataType}}]{{^required}}.?{{#vendorExtensions.hasDefaultValue}}({{{defaultValue}}}){{/vendorExtensions.hasDefaultValue}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/queryParams}}) { ({{#queryParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/queryParams}}) =>{{/queryParams.isEmpty}} {{^headerParams.isEmpty}} + parameters({{#queryParams}}"{{baseName}}".as[{{dataType}}]{{^required}}.?{{#vendorExtensions.x-has-default-value}}({{{defaultValue}}}){{/vendorExtensions.x-has-default-value}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/queryParams}}) { ({{#queryParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/queryParams}}) =>{{/queryParams.isEmpty}} {{^headerParams.isEmpty}} {{#headerParams}}{{#required}}headerValueByName{{/required}}{{^required}}optionalHeaderValueByName{{/required}}("{{baseName}}") { {{paramName}} => {{/headerParams}}{{/headerParams.isEmpty}}{{^cookieParams.isEmpty}} {{#cookieParams}}{{#required}}cookie({{/required}}{{^required}}optionalCookie({{/required}}"{{baseName}}"){ {{paramName}} => {{/cookieParams}}{{/cookieParams.isEmpty}}{{#isMultipart}} {{> multipart}}{{/isMultipart}}{{^isMultipart}}{{> noMultipart}}{{/isMultipart}}{{^cookieParams.isEmpty}} @@ -63,15 +63,15 @@ object {{classname}}Patterns { trait {{classname}}Service { {{#operation}} -{{#responses}} def {{operationId}}{{#vendorExtensions.isDefault}}Default{{/vendorExtensions.isDefault}}{{^vendorExtensions.isDefault}}{{code}}{{/vendorExtensions.isDefault}}{{#baseType}}({{#vendorExtensions.isDefault}}statusCode: Int, {{/vendorExtensions.isDefault}}response{{baseType}}{{containerType}}: {{dataType}}){{^isPrimitiveType}}(implicit toEntityMarshaller{{baseType}}{{containerType}}: ToEntityMarshaller[{{dataType}}]){{/isPrimitiveType}}{{/baseType}}{{^baseType}}{{#vendorExtensions.isDefault}}(statusCode: Int){{/vendorExtensions.isDefault}}{{/baseType}}: Route = - complete(({{#vendorExtensions.isDefault}}statusCode{{/vendorExtensions.isDefault}}{{^vendorExtensions.isDefault}}{{code}}{{/vendorExtensions.isDefault}}, {{#baseType}}response{{baseType}}{{containerType}}{{/baseType}}{{^baseType}}"{{message}}"{{/baseType}})) +{{#responses}} def {{operationId}}{{#vendorExtensions.x-is-default}}Default{{/vendorExtensions.x-is-default}}{{^vendorExtensions.x-is-default}}{{code}}{{/vendorExtensions.x-is-default}}{{#baseType}}({{#vendorExtensions.x-is-default}}statusCode: Int, {{/vendorExtensions.x-is-default}}response{{baseType}}{{containerType}}: {{dataType}}){{^isPrimitiveType}}(implicit toEntityMarshaller{{baseType}}{{containerType}}: ToEntityMarshaller[{{dataType}}]){{/isPrimitiveType}}{{/baseType}}{{^baseType}}{{#vendorExtensions.x-is-default}}(statusCode: Int){{/vendorExtensions.x-is-default}}{{/baseType}}: Route = + complete(({{#vendorExtensions.x-is-default}}statusCode{{/vendorExtensions.x-is-default}}{{^vendorExtensions.x-is-default}}{{code}}{{/vendorExtensions.x-is-default}}, {{#baseType}}response{{baseType}}{{containerType}}{{/baseType}}{{^baseType}}"{{message}}"{{/baseType}})) {{/responses}} /** {{#responses}} * {{#code}}Code: {{.}}{{/code}}{{#message}}, Message: {{.}}{{/message}}{{#dataType}}, DataType: {{.}}{{/dataType}} {{/responses}} */ - def {{operationId}}({{> operationParam}}){{^vendorExtensions.specificMarshallers.isEmpty}} - (implicit {{#vendorExtensions.specificMarshallers}}toEntityMarshaller{{varName}}: ToEntityMarshaller[{{dataType}}]{{^-last}}, {{/-last}}{{/vendorExtensions.specificMarshallers}}){{/vendorExtensions.specificMarshallers.isEmpty}}: Route + def {{operationId}}({{> operationParam}}){{^vendorExtensions.x-specific-marshallers.isEmpty}} + (implicit {{#vendorExtensions.x-specific-marshallers}}toEntityMarshaller{{varName}}: ToEntityMarshaller[{{dataType}}]{{^-last}}, {{/-last}}{{/vendorExtensions.x-specific-marshallers}}){{/vendorExtensions.x-specific-marshallers.isEmpty}}: Route {{/operation}} } diff --git a/modules/openapi-generator/src/main/resources/scala-akka-http-server/multipart.mustache b/modules/openapi-generator/src/main/resources/scala-akka-http-server/multipart.mustache index 6f8d2355b2ed..e4c9c2a82333 100644 --- a/modules/openapi-generator/src/main/resources/scala-akka-http-server/multipart.mustache +++ b/modules/openapi-generator/src/main/resources/scala-akka-http-server/multipart.mustache @@ -1,12 +1,12 @@ - formAndFiles({{#vendorExtensions.fileParams}}FileField("{{baseName}}")){{/vendorExtensions.fileParams}}{{#hasMore}}, {{/hasMore}} { partsAndFiles => {{^vendorExtensions.fileParams.isEmpty}} + formAndFiles({{#vendorExtensions.x-file-params}}FileField("{{baseName}}")){{/vendorExtensions.x-file-params}}{{#hasMore}}, {{/hasMore}} { partsAndFiles => {{^vendorExtensions.x-file-params.isEmpty}} val _____ : Try[Route] = for { - {{#vendorExtensions.fileParams}}{{baseName}} <- optToTry(partsAndFiles.files.get("{{baseName}}"), s"File {{baseName}} missing") - {{/vendorExtensions.fileParams}} - } yield { {{/vendorExtensions.fileParams.isEmpty}} - implicit val vp: StringValueProvider = partsAndFiles.form{{^vendorExtensions.nonFileParams.isEmpty}} - stringFields({{#vendorExtensions.nonFileParams}}"{{baseName}}".as[{{dataType}}]{{^required}}.?{{#vendorExtensions.hasDefaultValue}}({{defaultValue}}){{/vendorExtensions.hasDefaultValue}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.nonFileParams}}) { ({{#vendorExtensions.nonFileParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.nonFileParams}}) =>{{/vendorExtensions.nonFileParams.isEmpty}} + {{#vendorExtensions.x-file-params}}{{baseName}} <- optToTry(partsAndFiles.files.get("{{baseName}}"), s"File {{baseName}} missing") + {{/vendorExtensions.x-file-params}} + } yield { {{/vendorExtensions.x-file-params.isEmpty}} + implicit val vp: StringValueProvider = partsAndFiles.form{{^vendorExtensions.x-non-file-params.isEmpty}} + stringFields({{#vendorExtensions.x-non-file-params}}"{{baseName}}".as[{{dataType}}]{{^required}}.?{{#vendorExtensions.x-has-default-value}}({{defaultValue}}){{/vendorExtensions.x-has-default-value}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-non-file-params}}) { ({{#vendorExtensions.x-non-file-params}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-non-file-params}}) =>{{/vendorExtensions.x-non-file-params.isEmpty}} {{classVarName}}Service.{{operationId}}({{#allParams}}{{paramName}} = {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}){{^vendorExtensions.nonFileFormParams.isEmpty}} - }{{/vendorExtensions.nonFileFormParams.isEmpty}}{{^vendorExtensions.fileParams.isEmpty}} + }{{/vendorExtensions.nonFileFormParams.isEmpty}}{{^vendorExtensions.x-file-params.isEmpty}} } - _____.fold[Route](t => reject(MalformedRequestContentRejection("Missing file.", t)), identity){{/vendorExtensions.fileParams.isEmpty}} + _____.fold[Route](t => reject(MalformedRequestContentRejection("Missing file.", t)), identity){{/vendorExtensions.x-file-params.isEmpty}} } \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/scala-akka-http-server/noMultipart.mustache b/modules/openapi-generator/src/main/resources/scala-akka-http-server/noMultipart.mustache index a4c25bb27d2d..8a32c3333f65 100644 --- a/modules/openapi-generator/src/main/resources/scala-akka-http-server/noMultipart.mustache +++ b/modules/openapi-generator/src/main/resources/scala-akka-http-server/noMultipart.mustache @@ -1,6 +1,6 @@ {{^formParams.isEmpty}} - formFields({{#formParams}}"{{baseName}}".as[{{#isPrimitiveType}}{{dataType}}{{/isPrimitiveType}}{{^isPrimitiveType}}String{{/isPrimitiveType}}]{{^required}}.?{{#vendorExtensions.hasDefaultValue}}({{defaultValue}}){{/vendorExtensions.hasDefaultValue}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/formParams}}) { ({{#formParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/formParams}}) =>{{/formParams.isEmpty}} + formFields({{#formParams}}"{{baseName}}".as[{{#isPrimitiveType}}{{dataType}}{{/isPrimitiveType}}{{^isPrimitiveType}}String{{/isPrimitiveType}}]{{^required}}.?{{#vendorExtensions.x-has-default-value}}({{defaultValue}}){{/vendorExtensions.x-has-default-value}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/formParams}}) { ({{#formParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/formParams}}) =>{{/formParams.isEmpty}} {{#bodyParam}}{{^isPrimitiveType}}entity(as[{{dataType}}]){ {{paramName}} => {{/isPrimitiveType}}{{/bodyParam}}{{classVarName}}Service.{{operationId}}({{#allParams}}{{paramName}} = {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}){{#bodyParam}}{{^isPrimitiveType}} }{{/isPrimitiveType}}{{/bodyParam}}{{^formParams.isEmpty}} diff --git a/modules/openapi-generator/src/main/resources/scala-akka-http-server/operationParam.mustache b/modules/openapi-generator/src/main/resources/scala-akka-http-server/operationParam.mustache index 7e5846f3b882..c41442894066 100644 --- a/modules/openapi-generator/src/main/resources/scala-akka-http-server/operationParam.mustache +++ b/modules/openapi-generator/src/main/resources/scala-akka-http-server/operationParam.mustache @@ -1 +1 @@ -{{#allParams}}{{paramName}}: {{#isFile}}(FileInfo, File){{/isFile}}{{^isFile}}{{^required}}{{^vendorExtensions.hasDefaultValue}}Option[{{/vendorExtensions.hasDefaultValue}}{{/required}}{{dataType}}{{^required}}{{^vendorExtensions.hasDefaultValue}}]{{/vendorExtensions.hasDefaultValue}}{{/required}}{{/isFile}}{{#hasMore}}, {{/hasMore}}{{/allParams}} \ No newline at end of file +{{#allParams}}{{paramName}}: {{#isFile}}(FileInfo, File){{/isFile}}{{^isFile}}{{^required}}{{^vendorExtensions.x-has-default-value}}Option[{{/vendorExtensions.x-has-default-value}}{{/required}}{{dataType}}{{^required}}{{^vendorExtensions.x-has-default-value}}]{{/vendorExtensions.x-has-default-value}}{{/required}}{{/isFile}}{{#hasMore}}, {{/hasMore}}{{/allParams}} \ No newline at end of file