OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
Given a specification which contains a discriminator containing an underscore the @JsonTypeInfo property is incorrectly formatted to camel case. For instance a discriminator defined with _type produces the @JsonTypeInfo property type in the super class:
This produces an API server definition which is incorrect and not able to evaluate the discriminator to instantiate the correct sub class.
openapi-generator version
4.0.3-SNAPSHOT
OpenAPI declaration file content or url
openapi: 3.0.0
servers:
- url: https://api.example.com/v1
info:
version: 0.0.0
title: test
paths:
/pet:
get:
responses:
'200':
description: 'A Pet'
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/Cat'
- $ref: '#/components/schemas/Dog'
discriminator:
propertyName: _type
mapping:
Cat: '#/components/schemas/Cat'
Dog: '#/components/schemas/Dog'
components:
schemas:
Pet:
type: object
required:
- name
properties:
name:
type: string
_type:
type: string
discriminator:
propertyName: _type
Dog: # "Dog" is a value for the pet_type property (the discriminator value)
allOf: # Combines the main `Pet` schema with `Dog`-specific properties
- $ref: '#/components/schemas/Pet'
- type: object
# all other properties specific to a `Dog`
properties:
bark:
type: boolean
breed:
type: string
enum: [Dingo, Husky, Retriever, Shepherd]
Cat: # "Cat" is a value for the pet_type property (the discriminator value)
allOf: # Combines the main `Pet` schema with `Cat`-specific properties
- $ref: '#/components/schemas/Pet'
- type: object
# all other properties specific to a `Cat`
properties:
hunts:
type: boolean
age:
type: integer
Command line used for generation
openapi-generator-cli generate -g spring
Steps to reproduce
Generate the server stubs with the above API definition.
Description
Given a specification which contains a discriminator containing an underscore the @JsonTypeInfo property is incorrectly formatted to camel case. For instance a discriminator defined with
_type
produces the @JsonTypeInfo propertytype
in the super class:the expected @JsonTypeInfo property is
_type
:This produces an API server definition which is incorrect and not able to evaluate the discriminator to instantiate the correct sub class.
openapi-generator version
4.0.3-SNAPSHOT
OpenAPI declaration file content or url
Command line used for generation
Steps to reproduce
Generate the server stubs with the above API definition.
Related issues/PRs
https://github.com/OpenAPITools/openapi-generator/issues/1699