forked from zircote/swagger-php
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapi-3.0.0.yaml
172 lines (172 loc) · 4.17 KB
/
api-3.0.0.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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
openapi: 3.0.0
info:
title: 'Basic single file API'
license:
name: MIT
version: 1.0.0
servers:
-
url: 'https://localhost/api'
description: 'API server'
-
url: 'https://example.localhost'
description: 'The local environment.'
-
url: 'https://example.com'
description: 'The production server.'
paths:
'/products/{product_id}':
get:
tags:
- products
summary: 'Get a product.'
operationId: getProducts
parameters:
-
name: product_id
in: path
description: 'the product id'
required: false
schema:
type: integer
responses:
'200':
description: 'successful operation'
headers:
X-Rate-Limit:
description: 'calls per hour allowed by the user'
schema:
type: integer
format: int32
content:
application/json:
schema:
$ref: '#/components/schemas/Product'
'401':
description: oops
/products:
get:
tags:
- products
- catalog
summary: 'Get all.'
operationId: getAll
responses:
'200':
description: 'successful operation'
content:
application/json:
schema:
required:
- data
properties:
data: { type: array, items: { $ref: '#/components/schemas/Product' } }
type: object
'401':
description: oops
post:
tags:
- products
summary: 'Add products'
description: 'Add a product.'
operationId: addProducts
requestBody:
description: 'New product'
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Product'
responses:
'200':
description: 'successful operation'
content:
application/json:
schema:
$ref: '#/components/schemas/Product'
/subscribe:
post:
tags:
- products
summary: 'Subscribe to product webhook'
operationId: subscribe
parameters:
-
name: callbackUrl
in: query
responses:
'200':
description: 'callbackUrl registered'
callbacks:
onChange:
'{$request.query.callbackUrl}':
post:
requestBody:
description: 'subscription payload'
content:
application/json: { schema: { properties: { timestamp: { description: 'time of change', type: string, format: date-time } } } }
responses:
'200':
description: 'Your server implementation should return this HTTP status code if the data was received successfully'
components:
schemas:
Colour:
description: 'A Colour.'
type: string
enum:
- GREEN
- BLUE
- RED
NameTrait:
description: 'A Name.'
properties:
name:
description: 'The name.'
type: object
Product:
title: Product
description: 'A Product.'
type: object
allOf:
-
$ref: '#/components/schemas/NameTrait'
-
properties:
quantity:
type: integer
id:
description: 'The id.'
format: int64
example: 1
releasedAt:
type: string
brand:
type: string
default: null
example: null
nullable: true
colour:
$ref: '#/components/schemas/Colour'
kind:
description: 'The kind.'
type: string
enum:
- Virtual
type: object
securitySchemes:
bearerAuth:
type: http
description: 'Basic Auth'
scheme: bearer
security:
-
bearerAuth: []
tags:
-
name: products
description: 'All about products'
-
name: catalog
description: 'Catalog API'