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'You just set the body parameter to be Animal. The rest inherit from it, and are valid as input.
--
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-swaggers...@googlegroups.com.
For more options, visit 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.
To unsubscribe from this group and all its topics, send an email to swagger-swaggers...@googlegroups.com.
Currently, neither tool will show those fields. And since neither of them performs validation on responses, sub types are irrelevant.
Should have been clearer, sorry.
For requests, the validation is limited to primitives, mostly.
I believe that if you enable the JSON Schema Form editor (in swagger-ui), you will get some basic field-level validation for the payload fields, but it still doesn’t support the inheritance model.
Take a look at https://github.com/swagger-api/swagger-ui#parameters.