This document discusses the OpenAPI Initiative (OAI) and the OpenAPI Specification (OAS). It provides background on the evolution of the Swagger Specification into the OAS. It describes the OAI governance structure and technical development community. It also outlines the process for providing feedback and criteria for changes to the OAS. The document encourages involvement in the OAI technical community to help develop the next version of the OAS.
9 Months and Counting with the Open API Initiative
1. 9 Months and Counting!
Jeffrey Borek (@jeffborek)
Open Tech & Partnerships, IBM
September 15, 2016
2. Agenda
• Introduction
• API Challenges/Attraction/Background
• What is what?/Details/How’s it going?
• The OAI/Current Membership/Governance
• OAI Spec/Feedback & Categories/Change Criteria
3. Creating APIs remains challenging…
As a consumer
What do you call? Read the docs?
Hope for a (decent SDK)?
What are the parameters?
What is the payload?
As a provider
Accurate documentation is hard
Making SDKs is hard
Supporting users is really hard
And in general…
Writing boilerplate code blows
4. What attracted developers/companies to the Swagger Project?
• A common, public contract between
services
• Independent of language, framework,
deployment technology
YAML or JSON format
• Supports both API-first and code-first
approaches to defining, building and
documenting APIs
• Broad industry/developer adoption
5. Swagger Project background
• Swagger Project founded in 2010 by Tony
Tam / Reverb to design and document API
interfaces
• Groups large & small drawn to Project
Interested in its simplicity, pragmatic
approach, potential open governance
• Acquired by SmartBear in early 2015
• Decision to form a Linux Foundation
Working Group Project in late 2015
• Swagger Spec donated by SmartBear
Software to the Open API Initiative
7. • The Swagger Specification is now called the OpenAPI Specification
– The existing Swagger Specification is the OpenAPI Specification
– There are no changes in the existing specification
• The next version will be “de-Swaggered”
• The next version will be OAS 3.0
Details, details, details
Until OAS
3.0, Swagger
Spec = OAS
8. How is (ehm…) OAS 2.0 doing? ;-)
27 July 2016
• ~18k/daily downloads**
• Over 3k known public GitHub repos
• 44 targets in codegen from > 350
contributors
• Natively supported by all major
APIM solutions
– AWS
– IBM
– Microsoft
9. The Open API Initiative (OAI)
• Provide an open source, technical community, within which industry participants
may easily contribute to building a vendor-neutral, portable and open specification
for providing technical metadata for REST APIs
• The OAI is a collaborative project under the guidance of the The Linux Foundation. LF
Projects use open source governance best practices, including license and contribution
agreement choices, in keeping with the ideals of Linux
10. OAI Governance Structure
• Business Governance Board (BGB)
– The BGB shall be composed of one representative appointed by each OAI Member; responsible for
trademarks, certification, budget
• Technical Oversight Board (TOB)
– Responsible for managing conflicts, violations of procedures or guidelines and any cross-project or
high-level issues that cannot be resolved in TDC
• Technical Development Community (TDC) ← Open to all
– Manages the Open API Specification development
11. OAI Spec Current and Future Status
• https://github.com/OAI/OpenAPI-S
pecification (current 2.0)
• When properly defined via
OpenAPI, a consumer can
understand and interact with the
remote service with a minimal
amount of implementation logic
• https://github.com/OAI/OpenAPI-Spe
cification/tree/OpenAPI.next
(working branch 3.0)
• All development activity on the future
specification will be performed as
features and merged into this branch.
Upon release of the OpenAPI
Specification, this branch will be
merged to master
12. Gathering Feedback / Categories of OAS Meta Issues
• Thousands of reports on
GitHub / Google Groups / IRC
• OSS tooling requests /
Implementation challenges
• Following the evolution of API
design and looking ahead
1. Document Structure
2. Payloads + Schemas
3. Security
4. Paths
5. Parameters
6. Specification document
structure
LInk to Meta Issues in OAI GitHub Repo here:
13. OAS 3.0 Specification Change Criteria
• Clarity - The current "way" something is done doesn't make sense, is complicated, or not clear
• Consistency - A portion of the specification is not consistent with the rest, or the industry
standard terminology
• Necessary functionality - We are missing functionality because of a certain design of the
specification
• Forward-looking designs - As usage of APIs evolves to new protocols, formats, patterns, we
should always be considering what the next important functionality should be
• Impact - A change will provide impact on a large number of use cases. We should not be
forced to accommodate every use case. We should strive to make the common and important
use cases both well supported and common in the definition of the OAI Spec. We cannot be
edge-case driven
14. Get involved with the OAI community
Join the technical community and engage with projects!
– Get involved in creating the next version of the OpenAPI Spec
• https://openapis.org/news/blogs/2016/07/you-can-get-involved-creating-openapi-specification-and-he
res-how
– IRC: #openapis at irc.freenode.net
– Twitter: @OpenApiSpec
– GitHub
• https://github.com/OAI/OpenAPI-Specification URL
• https://github.com/OAI/OpenAPI-Specification/tree/OpenAPI.next
• https://github.com/swagger-api
What role would you/your company like to play in the OAI?
– https://openapis.org/join