Swagger: la forma del esquema variante depende del valor del campo
Tengo un modelo definido como:
Event:
type: object
properties:
id:
type: string
timestamp:
type: string
format: date-time
type:
type: string
enum:
- click
- open
- sent
click:
type: object
properties:
url:
type: string
title:
type: string
open:
type: object
properties:
subject:
type: string
sent:
type: object
properties:
subject:
type: string
from:
type: string
to:
type: string
Sin embargo, la forma es realmente diferente dependiendo del valor detype
campo enum. Puede ser uno de tres, traté de definir las diferencias en elexamples
(ver abajo) pero esto no funcionó.
Como puede ver, a continuación se muestran tres ejemplos, cada uno es diferente dependiendo detype
. Así es como se comporta la API, pero no es sencillo documentar este comportamiento esperado.
examples:
application/json:
- id: >
ad1b12f0-63a8-47b5-9820-3e447143ce7e
timestamp: >
2017-09-29T16:45:20.000+00:00
type: click
click:
url: >
www.some-website-somewhere.org/12345
title: >
Click here!
- id: >
d9e787fa-db49-4bd8-97c3-df45f159295c
timestamp: >
2017-09-29T16:45:20.000+00:00
type: open
open:
subject: >
Have you seen this?
- id: >
30adc194-0f5f-4889-abd4-4fa964d0bb42
timestamp: >
2017-09-29T16:45:20.000+00:00
type: sent
sent:
subject: >
Have you seen this?
from: >
[email protected]
to: >
[email protected]
Leí algunos lugares que mencionan que esto no es posible, pero espero obtener algunos pensadores "innovadores" que me ayuden a encontrar una solución.