Как установить дискриминатор по умолчанию для каждого дочернего класса?
Например, возьмем эту схему:
components:
schemas:
Pet:
type: object
required:
- petType
properties:
petType:
type: string
discriminator:
propertyName: petType
Cat:
allOf:
- $ref: '#/components/schemas/Pet'
- type: object
# all other properties specific to a `Cat`
properties:
name:
type: string
Dog:
allOf:
- $ref: '#/components/schemas/Pet'
- type: object
# all other properties specific to a `Dog`
properties:
bark:
type: string
Генераторы кода для приведенной выше схемы создадут клиента, в котором Значение petType
должно быть явно установлено программистом. Почему для объекта Cat
не может быть установлено значение petType
Cat
по умолчанию?
Я попытался использовать значение default
, чтобы заставить его работать. Однако результирующий код включает затененные свойства (одно и то же свойство для дочернего и родительского элементов). родителя, чем ребенка.
components:
schemas:
Pet:
type: object
required:
- petType
discriminator:
propertyName: petType
Cat:
allOf:
- $ref: '#/components/schemas/Pet'
- type: object
# all other properties specific to a `Cat`
properties:
name:
type: string
petType:
type: string
default: 'Cat'
Dog:
allOf:
- $ref: '#/components/schemas/Pet'
- type: object
# all other properties specific to a `Dog`
properties:
bark:
type: string
petType:
type: string
default: 'Dog'
Есть ли у вас какие-либо решения этой проблемы?