forked from microsoft/OpenAPI.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocumentWith31Properties.yaml
More file actions
129 lines (123 loc) · 3.96 KB
/
documentWith31Properties.yaml
File metadata and controls
129 lines (123 loc) · 3.96 KB
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
openapi: 3.1.1
info:
title: Sample OpenAPI 3.1 API
description: A sample API demonstrating OpenAPI 3.1 features
version: "2.0.0"
summary: Sample OpenAPI 3.1 API with the latest features # OpenAPI 3.1 feature
license:
name: Apache 2.0
identifier: Apache-2.0 # SPDX license identifier, a new 3.1 feature to define an API's SPDX license expression
# JSON Schema 2020-12 feature
jsonSchemaDialect: "https://json-schema.org/draft/2020-12/schema"
servers:
- url: https://api.example.com/v2
description: Main production server
# Example Webhooks (OpenAPI 3.1 feature)
webhooks:
newPetAlert:
post:
summary: Notify about a new pet being added
requestBody:
required: true
content:
application/json:
schema:
type: string
responses:
'200':
description: Webhook processed successfully
paths:
/pets:
get:
summary: List all pets
operationId: listPets
tags:
- pets
parameters:
- name: limit
in: query
description: How many items to return at one time (max 100)
required: false
schema:
type: integer
#exclusiveMinimum and exclusiveMaximum now represent distinct values
exclusiveMinimum: 1
exclusiveMaximum: 100
responses:
'200':
description: A paged array of pets
content:
application/json:
schema:
# 3.1 feature where we can reference schemas using their identifier
$ref: 'https://example.com/schemas/pet.json'
/sample:
get:
summary: Sample endpoint
responses:
'200':
description: Sample response
content:
application/json:
schema:
#JSON schema keywords
$schema: "https://json-schema.org/draft/2020-12/schema"
$id: "https://example.com/schemas/person.schema.yaml"
$comment: "A schema defining a pet object with optional references to dynamic components."
$vocabulary:
"https://json-schema.org/draft/2020-12/vocab/core": true
"https://json-schema.org/draft/2020-12/vocab/applicator": true
"https://json-schema.org/draft/2020-12/vocab/validation": true
"https://json-schema.org/draft/2020-12/vocab/meta-data": false
"https://json-schema.org/draft/2020-12/vocab/format-annotation": false
title: "Pet"
description: "Schema for a pet object"
type: "object"
properties:
name:
type: "string"
$comment: "The pet's full name"
address:
$dynamicRef: "#addressDef"
$comment: "Reference to an address definition which can change dynamically"
required:
- name
$dynamicAnchor: "addressDef"
components:
securitySchemes:
api_key:
type: apiKey
name: api_key
in: header
schemas:
Pet:
$id: 'https://example.com/schemas/pet.json'
type: object
required:
- id
- weight
properties:
id:
type: string
format: uuid
weight:
type: number
exclusiveMinimum: 0
description: Weight of the pet in kilograms
# Pattern properties and Type array feature from JSON Schema
attributes:
type:
- "object"
- "null"
description: Dynamic attributes for the pet
patternProperties:
"^attr_[A-Za-z]+$":
type: string
$comment: "This schema represents a pet in the system." # JSON Schema 2020-12 feature
$defs: # JSON Schema 2020-12 feature
ExtraInfo:
type: string
tags:
- name: pets
security:
- api_key: []