Contributions
[Java] How to get oneOf data from responses
This may be a limitation of my Java knowledge. I am trying to work out how to get the correct oneOf data back from a GET request Given the simple swagger definition: openapi: 3.0.1 info: title: Inheritance description: A description contact: email: me@example.com version: 0.0.0 paths: /pets: get: responses: '200': description: Updated content: application/json: schema: oneOf: - $ref: '#/components/schemas/Cat' - $ref: '#/components/schemas/Dog' discriminator: propertyName: petType components: schemas: Pet: type: object required: - petType properties: petType: type: string discriminator: propertyName: petType 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 Using the java generator (3.0.19) to generate the client api, I am provided with the petsGet() function, which I can use as follows: DefaultApi defaultApi = new DefaultApi(); try { InlineResponse200 response = defaultApi.petsGet(); } catch (ApiException e) { ... } My question is, how do I convert the response object to either a Cat or a Dog?693Views0likes0Comments