Thanks for the response.

You spoke about responses. What about as part of a payload?

Thanks


> On Aug 16, 2016, at 10:46 PM, Ron Ratovsky <r...@swagger.io> wrote:
> 
> Currently, neither tool will show those fields. And since neither of them 
> performs validation on responses, sub types are irrelevant.
>  
>  
>  
> From: <swagger-swaggersocket@googlegroups.com 
> <mailto:swagger-swaggersocket@googlegroups.com>> on behalf of Jeff Haynes 
> <jeff9fin...@gmail.com <mailto:jeff9fin...@gmail.com>>
> Reply-To: "swagger-swaggersocket@googlegroups.com 
> <mailto:swagger-swaggersocket@googlegroups.com>" 
> <swagger-swaggersocket@googlegroups.com 
> <mailto:swagger-swaggersocket@googlegroups.com>>
> Date: Friday, 12 August 2016 at 15:22
> To: "swagger-swaggersocket@googlegroups.com 
> <mailto:swagger-swaggersocket@googlegroups.com>" 
> <swagger-swaggersocket@googlegroups.com 
> <mailto:swagger-swaggersocket@googlegroups.com>>
> Subject: Re: How do I specify a payload that allows different sub types?
>  
> Does that show all the fields for each type through swagger-ui and 
> swagger-editor? 
> And does that allow validation of the sub types?
>  
> Thanks
>  
>  
>> On Aug 12, 2016, at 5:14 PM, Ron Ratovsky <r...@swagger.io 
>> <mailto:r...@swagger.io>> wrote:
>>  
>> You just set the body parameter to be Animal. The rest inherit from it, and 
>> are valid as input.
>>  
>>  
>>  
>> From: <swagger-swaggersocket@googlegroups.com 
>> <mailto:swagger-swaggersocket@googlegroups.com>> on behalf of Jeff Haynes 
>> <jeff9fin...@gmail.com <mailto:jeff9fin...@gmail.com>>
>> Reply-To: "swagger-swaggersocket@googlegroups.com 
>> <mailto:swagger-swaggersocket@googlegroups.com>" 
>> <swagger-swaggersocket@googlegroups.com 
>> <mailto:swagger-swaggersocket@googlegroups.com>>
>> Date: Friday, 12 August 2016 at 15:10
>> To: Swagger <swagger-swaggersocket@googlegroups.com 
>> <mailto:swagger-swaggersocket@googlegroups.com>>
>> Subject: How do I specify a payload that allows different sub types?
>>  
>>  
>>  
>> I am trying to design an endpoint of our API and the payload is an object 
>> which (in Java) is represented by a base class and several sub classes.
>>  
>> definitions:
>>   AnimalType:
>>     type: string
>>     enum: &animal_type_values
>>     - dog
>>     - cat
>>     - pig
>>     - horse
>> 
>>   EntityType:
>>     description: An enumeration of the supported entity types
>>     type: string
>>     enum:
>>     - Animal
>>     - Crop
>>     - Person
>>     - Building
>> 
>>   Entity:
>>     discriminator: entity_type
>>     required:
>>       - entity_type
>>       - id
>>     properties:
>>       id:
>>         type: integer
>>         format: int64
>>         readOnly: true
>>         description: The internal entity id for this entity representation
>>         example: 1438752
>>       entity_type:
>>         $ref: '#/definitions/EntityType'
>> 
>>   AnimalPayload:
>>     discriminator: animal_type
>>     allOf:
>>       - $ref: '#/definitions/Dog'
>>       - $ref: '#/definitions/Cat'
>>       - $ref: '#/definitions/Pig'
>>       - $ref: '#/definitions/Horse'
>> 
>>   Animal:
>>     discriminator: animal_type
>>     allOf:
>>       - $ref: '#/definitions/Entity'
>>       - type: object
>>         required:
>>           - animal_type
>>         properties:
>>           animal_type:
>>             $ref: '#/definitions/AnimalType'
>>           name:
>>             type: string
>>             readOnly: true    
>>           birth_date:
>>             type: string
>>             format: date
>>           gender:
>>             type: string
>>             enum:
>>             - male
>>             - female
>> 
>>   Dog:
>>     allOf:
>>       - $ref: '#/definitions/Animal'
>>       - type: object
>>         properties:
>>           breed:
>>             type: string
>>             
>>   Cat:
>>     allOf:
>>       - $ref: '#/definitions/Animal'
>>       - type: object
>>         properties:
>>           num_lives:
>>             type: integer
>>             format: int32
>> 
>>   Pig:
>>     allOf:
>>       - $ref: '#/definitions/Animal'
>>       - type: object
>>         properties:
>>           color:
>>             type: string
>> 
>>   Horse:
>>     allOf:
>>       - $ref: '#/definitions/Animal'
>>       - type: object
>>         properties:
>>           breed:
>>             type: string
>>             tamed:
>>               type: boolean
>> paths:
>>   /animals:
>> 
>>     post:
>>       parameters:
>>         animal:
>>           name: animal
>>           in: body
>>           schema:
>>             - $ref: '#/parameters/Dog'
>>             - $ref: '#/parameters/Cat'
>>             - $ref: '#/parameters/Pig'
>>             - $ref: '#/parameters/Horse'
>>  
>>  
>> I know this is not valid, but how do I get this to work in some form? I 
>> would like to simply use a Dog, Cat, Pig, or Horse object as the payload.
>>  
>> The only way I can think of is to create the AnimalPayload object. That is 
>> messy and confusing. Am I missing something? Can I model this differently to 
>> make this work more intuitively?
>>  
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Swagger" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to swagger-swaggersocket+unsubscr...@googlegroups.com 
>> <mailto:swagger-swaggersocket+unsubscr...@googlegroups.com>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
>>  
>> -- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "Swagger" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/swagger-swaggersocket/Jkz8lvE4s5A/unsubscribe
>>  
>> <https://groups.google.com/d/topic/swagger-swaggersocket/Jkz8lvE4s5A/unsubscribe>.
>> To unsubscribe from this group and all its topics, send an email to 
>> swagger-swaggersocket+unsubscr...@googlegroups.com 
>> <mailto:swagger-swaggersocket+unsubscr...@googlegroups.com>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
> 
>  
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Swagger" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to swagger-swaggersocket+unsubscr...@googlegroups.com 
> <mailto:swagger-swaggersocket+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.
> 
> -- 
> You received this message because you are subscribed to a topic in the Google 
> Groups "Swagger" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/swagger-swaggersocket/Jkz8lvE4s5A/unsubscribe
>  
> <https://groups.google.com/d/topic/swagger-swaggersocket/Jkz8lvE4s5A/unsubscribe>.
> To unsubscribe from this group and all its topics, send an email to 
> swagger-swaggersocket+unsubscr...@googlegroups.com 
> <mailto:swagger-swaggersocket+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to swagger-swaggersocket+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to