Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Go] UNKNOWN_BASE_TYPE and incorrect v2 selection #1229

Closed
adamdecaf opened this issue Oct 12, 2018 · 2 comments
Closed

[Go] UNKNOWN_BASE_TYPE and incorrect v2 selection #1229

adamdecaf opened this issue Oct 12, 2018 · 2 comments

Comments

@adamdecaf
Copy link
Contributor

Description

I'm trying to generate a Go client with the following spec: https://github.com/adamdecaf/openapitools-unknown_base_type-bug

However, the generation fails:

[main] WARN  o.o.codegen.DefaultCodegen - The following schema has undefined (null) baseType. It could be due to form parameter defined in OpenAPI v2 spec with incorrect consumes. A correct 'consumes' for form parameters should be 'application/x-www-form-urlencoded' or 'multipart/form-data'
...
[main] WARN  o.o.codegen.DefaultCodegen - codegenModel is null. Default to UNKNOWN_BASE_TYPE

I don't know why v2 is mentioned. This is a v3.0.1 OpenAPI file, not v2.

openapi-generator version

v3.3.0 v3.3.1-SNAPSHOT and v3.4.0-SNAPSHOT (as of 2018-10-12)

Command line used for generation

Run make in the project linked above or use the following:

$ ./openapi-generator generate -i openapi.yaml -g go -o ./client
Full output
$ make
rm -rf client/
export OPENAPI_GENERATOR_VERSION=v3.3.0 # v3.3.0, v3.3.1-SNAPSHOT, v3.4.0-SNAPSHOT
chmod +x ./openapi-generator
ionice -c2 ./openapi-generator generate -i openapi.yaml -g go -o ./client
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.9:get (default-cli) @ standalone-pom ---
[INFO] Resolving org.openapitools:openapi-generator-cli:jar:3.3.0
[WARNING] destination/dest parameter is deprecated: it will disappear in future version.
[INFO] Copying /home/adam/.m2/repository/org/openapitools/openapi-generator-cli/3.3.0/openapi-generator-cli-3.3.0.jar to /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/openapi-generator-cli-3.3.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.931 s
[INFO] Finished at: 2018-10-12T18:55:13+00:00
[INFO] Final Memory: 11M/38M
[INFO] ------------------------------------------------------------------------
[main] WARN  o.o.c.ignore.CodegenIgnoreProcessor - Output directory does not exist, or is inaccessible. No file (.openapi-generator-ignore) will be evaluated.
[main] INFO  o.o.c.languages.AbstractGoCodegen - Environment variable GO_POST_PROCESS_FILE not defined so Go code may not be properly formatted. To define it, try `export GO_POST_PROCESS_FILE="/usr/local/bin/gofmt -w"` (Linux/Mac)
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/model_customer.go
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/docs/Customer.md
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/model_customers.go
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/docs/Customers.md
[main] WARN  o.o.codegen.DefaultCodegen - The following schema has undefined (null) baseType. It could be due to form parameter defined in OpenAPI v2 spec with incorrect consumes. A correct 'consumes' for form parameters should be 'application/x-www-form-urlencoded' or 'multipart/form-data'
[main] WARN  o.o.codegen.DefaultCodegen - schema: class Schema {
    title: null
    multipleOf: null
    maximum: null
    exclusiveMaximum: null
    minimum: null
    exclusiveMinimum: null
    maxLength: null
    minLength: null
    pattern: null
    maxItems: null
    minItems: null
    uniqueItems: null
    maxProperties: null
    minProperties: null
    required: [defaultDepository, email]
    type: null
    not: null
    properties: {email=class StringSchema {
        class Schema {
            title: null
            multipleOf: null
            maximum: null
            exclusiveMaximum: null
            minimum: null
            exclusiveMinimum: null
            maxLength: null
            minLength: null
            pattern: null
            maxItems: null
            minItems: null
            uniqueItems: null
            maxProperties: null
            minProperties: null
            required: null
            type: null
            not: null
            properties: null
            additionalProperties: null
            description: The customers email address
            format: e-mail
            $ref: null
            nullable: null
            readOnly: null
            writeOnly: null
            example: null
            externalDocs: null
            deprecated: null
            discriminator: null
            xml: null
        }
        type: string
        _default: null
        _enum: null
    }, defaultDepository=class StringSchema {
        class Schema {
            title: null
            multipleOf: null
            maximum: null
            exclusiveMaximum: null
            minimum: null
            exclusiveMinimum: null
            maxLength: null
            minLength: null
            pattern: null
            maxItems: null
            minItems: null
            uniqueItems: null
            maxProperties: null
            minProperties: null
            required: null
            type: null
            not: null
            properties: null
            additionalProperties: null
            description: The depository account to be used by default per transfer. ID must be a valid Customer Depository account
            format: null
            $ref: null
            nullable: null
            readOnly: null
            writeOnly: null
            example: 0c5e215c
            externalDocs: null
            deprecated: null
            discriminator: null
            xml: null
        }
        type: string
        _default: null
        _enum: null
    }, metadata=class StringSchema {
        class Schema {
            title: null
            multipleOf: null
            maximum: null
            exclusiveMaximum: null
            minimum: null
            exclusiveMinimum: null
            maxLength: null
            minLength: null
            pattern: null
            maxItems: null
            minItems: null
            uniqueItems: null
            maxProperties: null
            minProperties: null
            required: null
            type: null
            not: null
            properties: null
            additionalProperties: null
            description: Additional meta data to be used for display only
            format: null
            $ref: null
            nullable: null
            readOnly: null
            writeOnly: null
            example: Authorized for re-occurring WEB
            externalDocs: null
            deprecated: null
            discriminator: null
            xml: null
        }
        type: string
        _default: null
        _enum: null
    }}
    additionalProperties: null
    description: null
    format: null
    $ref: null
    nullable: null
    readOnly: null
    writeOnly: null
    example: null
    externalDocs: null
    deprecated: null
    discriminator: null
    xml: null
}
[main] WARN  o.o.codegen.DefaultCodegen - codegenModel is null. Default to UNKNOWN_BASE_TYPE
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/api_customers.go
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/docs/CustomersApi.md
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/api/openapi.yaml
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/README.md
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/git_push.sh
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/.gitignore
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/configuration.go
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/client.go
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/response.go
[main] INFO  o.o.codegen.DefaultGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/.travis.yml
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/.openapi-generator-ignore
[main] INFO  o.o.codegen.AbstractGenerator - writing file /home/adam/code/src/github.com/adamdecaf/openapitools-unknown_base_type-bug/./client/.openapi-generator/VERSION
@adamdecaf
Copy link
Contributor Author

Closing. I think #1112 is the issue. I had some errors in my OpenAPI spec.

@lornajane
Copy link

I didn't have errors that any validator could see but I was missing type: object which should have been alongside properties. Just adding this here in case anyone else (or future me!) could benefit from this anecdata.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants