-
-
Notifications
You must be signed in to change notification settings - Fork 202
/
api.yaml
86 lines (83 loc) 路 2.2 KB
/
api.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
openapi: '3.0.3'
info:
version: 1.0.0
title: Swagger
servers:
- url: /v1
paths:
/pets/nomapping:
post:
description: Creates a new pet in the store.
requestBody:
description: Pet to add to the store
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CatObject'
- $ref: '#/components/schemas/DogObject'
discriminator:
propertyName: pet_type
responses:
'200':
description: Updated
/pets/mapping:
post:
description: Creates a new pet in the store.
requestBody:
description: Pet to add to the store
required: true
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CatObject'
- $ref: '#/components/schemas/DogObject'
discriminator:
propertyName: pet_type
mapping:
cat: '#/components/schemas/CatObject'
kitty: '#/components/schemas/CatObject'
dog: '#/components/schemas/DogObject'
puppy: '#/components/schemas/DogObject'
responses:
'200':
description: Updated
components:
schemas:
DogObject:
type: object
required:
- bark
- breed
- pet_type
properties:
bark:
type: boolean
breed:
type: string
enum: [Dingo, Husky, Retriever, Shepherd]
pet_type:
type: string
# since we use an enum here
# add DogObject as an option
# so that the non-mapping / implied mapping tests can pass
enum: [dog, puppy, DogObject]
CatObject:
type: object
required:
- hunts
- age
- pet_type
properties:
hunts:
type: boolean
age:
type: integer
pet_type:
type: string
# since we use an enum here
# add CatObject as an option
# so that the non-mapping / implied mapping tests can pass
enum: [cat, kitty, CatObject]