openapi-processor / openapi-processor-core

moved into openapi-processor-base
Apache License 2.0
7 stars 5 forks source link

Generator cannot handle empty schema #92

Closed aburmeis closed 2 years ago

aburmeis commented 2 years ago

I have a read only part of an API where the content has no schema. At this point a Javascript anyor Java Object would be the appropriate representation. Looking for the OpenApi specification for that, an empty schema seems to be the right definition (see SO https://stackoverflow.com/a/43328994/12890):

components:
  schemas:
    AnyValue: {}

Doing so this type is not generated nor replaced by Object, it is simply not handled. Even an explicit type mapping (to java.lang.Object e.g.) is ignored so the generated code is not compiling.

The only work around I found looks like this (I don't need array):

AnyValue:
  anyOf:
    - type: object
    - type: string
    - type: number
    - type: integer
    - type: boolean

and an explicit type mapping

map:
  types:
    - type: AnyValue => java.lang.Object

I am using openapi-processor-maven-plugin version 2021.1 with openapi-processor-spring version 2022.2.

hauner commented 2 years ago

The empty schema is a weak spot. I have to look at it.

That the mapping does not work is unexpected. I wonder what's going wrong there.

hauner commented 2 years ago

it is now possible and necessary to add a type mapping for this case.

That the processor does not generate code for the empty schema is caused by another case that must not generate a class.

Nothing I want to touch right now, so I just added the missing mapping possibility for now.

hauner commented 2 years ago

released in io.openapiprocessor:openapi-processor-spring:2022.3

aburmeis commented 2 years ago

Works now with 2022.3, thank you!