OpenAPITools / OpenAPITools/openapi-generator

Inner class with reserved kotlin name is broken on kotlin-server generated files

Open
#12,399 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Issue: Bug
Dominant language
Java
Stars
26.8k
Forks
7.7k
PR merge metrics
PR metrics pending

Description

There's a bug generating kotlin-server reserved property types when combined with inner types of data classes (maybe wider)

With build.gradle:

def generatedSources = "src/main/openapi"

openApiGenerate {
    generatorName = "kotlin-server"
    inputSpec = "$projectDir/open-api/LoanAccounts.yaml".toString()
    outputDir = "$projectDir".toString()
    apiPackage = "net.satago.mambu.client.api.clients"
    modelPackage = "net.satago.mambu.client.api.models"
    globalProperties = [
            models: "",
            apis  : "",
    ]
    configOptions = [
            sourceFolder      : generatedSources,
            dateLibrary       : "java8",
            enumPropertyNaming: "original",
            interfaceOnly     : "true",
            library           : "jaxrs-spec",
    ]
}

Instead of generating:

data class FilterCriteria {
    val `field`: FilterCriteria.`Field`

    enum class `Field` {
        ...
    }
}

generates quotes URL-encoded:

data class FilterCriteria {
    val `field`: FilterCriteria.`Field`

    enum class `Field` {
        ...
    }
}

Using openapi-generator-5.4.0

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with build.gradle, the openapiGenerate configuration, and the generated Kotlin files from open-api/LoanAccounts.yaml. Compare the expected FilterCriteria output with the generated URL-encoded reference, then verify that the kotlin-server output preserves valid Kotlin backtick quoting for the inner Field type.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin, openapi
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.