SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
With special guests Ron Ratovsky and Darrel Miller from the OpenAPI Initiative's Technical Steering Committee, this SmartBear webinar session covered the history of Swagger and the OpenAPI Specification, and all the latest changes in OAS 3.1.
With special guests Ron Ratovsky and Darrel Miller from the OpenAPI Initiative's Technical Steering Committee, this SmartBear webinar session covered the history of Swagger and the OpenAPI Specification, and all the latest changes in OAS 3.1.
3.
Proprietary & Confidential
4
OpenAPI
2.0
2014
2015
2016
2017
OpenAPI
3.0
OpenAPI
3.0.2
2018
2019
Alternative
Schema
Pilot
OpenAPI
3.1
2021
Overlays
OpenAPI Specification History
4.
Proprietary & Confidential
5
OpenAPI Versioning
3.0
The OpenAPI Specification is versioned using Semantic Versioning 2.0.0
(semver) and follows the semver specification.
3.0.3
Each new minor version of the OpenAPI Specification SHALL allow any
OpenAPI document that is valid against any previous minor version of the
Specification, within the same major version, to be updated to the new
Specification version with equivalent semantics. Such an update MUST
only require changing the openapi property to the new minor version.
3.1
Occasionally, non-backwards compatible changes may be made in minor
versions of the OAS where impact is believed to be low relative to the
benefit provided.
Yay SemVer!
Clarity!
Err SemVer?
Need more
precision!
Boo SemVer!
5.
Proprietary & Confidential
6
Info Object
https://spdx.org/licenses/
openapi: 3.1.0
info:
title: My Demo API
version: 1.0.0
summary: An API with examples of features in 3.1
license:
name: Apache 2.0
identifier: Apache-2.0 SPDX Identifier for machine
processing
6.
Proprietary & Confidential
7
Webhooks
openapi: 3.1.0
info:
title: My Demo API
version: 1.0.0
summary: An API with examples of features in 3.1
webhooks:
newThingAlert:
$ref: '#/components/pathItems/newThingAlert'
components:
pathItems:
newThingAlert:
summary: Notification that a new thing has been created
post:
requestBody:
content:
applicaton/json:
schema:
type: object
properties:
thingName:
type: string
Reusable Path Items
Out-of-band registered
callbacks
7.
Proprietary & Confidential
8
paths:
/todos:
post:
requestBody:
content:
application/json:
schema:
summary: A new todo object
description: |
This is where where a new todo
object can be described.
$ref: "#/components/schemas/todo“
responses:
201:
description: Created
components:
schemas:
todo:
title: A todo object
type: object
properties:
id:
type: integer
description:
type: string
$ref
SHOULD
override
Correction: The ability to override values
is only within the Reference Object and
cannot be used inside the Schema Object
8.
Proprietary & Confidential
9
openapi: 3.1.0
info:
title: Security Demo
version: 1.0.0
paths:
/todos:
post:
...
security:
clientCertificate:
- todo.write
components:
securitySchemes:
clientCertificate:
type: mutualTLS
Security
Roles/Claims for non-OAuth
schemes
New security scheme type for client
certificates
10.
Proprietary & Confidential
11
Odds and Ends Allowed request body for all HTTP methods
Added multipart/form-data support for encoding
object
Path Item parameters must be defined
Removed definition of some formats e.g. byte,
binary
Responses are now optional
12.
Proprietary & Confidential
13
Full JSON Schema Support
- Full type support (nullable is gone)
- Formats are… not enforced
- exclusiveMinimum/Maximum, readOnly/writeOnly
- file uploads, contentEncoding, contentMediaType
- $schema and dialects (jsonSchemaDialect)
- $id
14.
Proprietary & Confidential
15
The Future
Overlays: Separate document that augments another API description
Reusable groups: $ref more than one component
Alternative Schemas
Optional and Multi-segment Paths
Disambiguating based on query
Digital Signatures and Encryption
Discovery mechanism for security credentials (jwt, apikey, etc)
Editor's Notes
Member of TSC
Easy to migrate existing body of descriptions to new version SemVer sucks for specs!Major and minor
-45
0 likes
Be the first to like this
Views
Total views
782
On SlideShare
0
From Embeds
0
Number of Embeds
5
You have now unlocked unlimited access to 20M+ documents!
Unlimited Reading
Learn faster and smarter from top experts
Unlimited Downloading
Download to take your learnings offline and on the go
You also get free access to Scribd!
Instant access to millions of ebooks, audiobooks, magazines, podcasts and more.
Read and listen offline with any device.
Free access to premium services like Tuneln, Mubi and more.