Skip to content

Commit 9d59a51

Browse files
committed
Merge branch 'master' into v3.1.0-dev
2 parents 8da2c2a + 5285c69 commit 9d59a51

File tree

157 files changed

+8587
-12583
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

157 files changed

+8587
-12583
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: convert-examples-to-json
2+
3+
# author: @MikeRalphson / @cebe
4+
# issue: https://github.com/OAI/OpenAPI-Specification/issues/1385
5+
6+
#
7+
# This workflow updates the *.json files in the examples/v3.x directories,
8+
# when the corresponding *.yaml files change.
9+
# JSON example files are automatically generated from the YAML example files.
10+
# Only the YAML files should be adjusted manually.
11+
#
12+
13+
# run this on push to master
14+
on:
15+
push:
16+
branches:
17+
- master
18+
19+
jobs:
20+
yaml2json:
21+
22+
runs-on: ubuntu-latest
23+
24+
steps:
25+
- uses: actions/checkout@v1 # checkout repo content
26+
27+
- name: Install dependencies
28+
run: npm i
29+
30+
- name: convert YAML examples to JSON
31+
run: find examples/v3* -type f -name "*.yaml" | xargs node scripts/yaml2json/yaml2json.js
32+
33+
- name: git diff
34+
run: |
35+
git add examples/**/*.json
36+
git --no-pager -c color.diff=always diff --staged
37+
38+
- name: Create Pull Request
39+
uses: peter-evans/create-pull-request@v1
40+
with:
41+
token: ${{ secrets.GITHUB_TOKEN }}
42+
branch-suffix: none
43+
branch: update-json-examples
44+
title: Update JSON example files
45+
commit-message: Update JSON example files
46+
body: |
47+
This pull request is automatically triggered by GitHub action `convert-examples-to-json`.
48+
49+
The examples/v3.* YAML files have changed, so the JSON files are automatically being recreated.
50+
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: validate-markdown
2+
3+
# Author: @MikeRalphson
4+
# Issue: https://github.com/OAI/OpenAPI-Specification/issues/2130
5+
6+
#
7+
# This workflow validates files in the versions directory matching 3.*.md
8+
# Versions before 3.0 are not validated, as they contain linking errors
9+
# where it is not currently planned to go back and fix them
10+
#
11+
12+
# run this on push to any branch and creation of pull-requests
13+
on: [push, pull_request]
14+
15+
jobs:
16+
mdv:
17+
18+
runs-on: ubuntu-latest
19+
20+
steps:
21+
- uses: actions/checkout@v1 # checkout repo content
22+
- uses: actions/setup-node@v1 # setup Node.js
23+
with:
24+
node-version: '12.x'
25+
- name: Validate markdown
26+
run: npx mdv versions/3.*.md
27+

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@
55
target
66
atlassian-ide-plugin.xml
77
node_modules/
8+
package-lock.json
89
Gemfile.lock

.travis.yml

-19
This file was deleted.

GOVERNANCE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Governance
22

3-
The OpenAPI Specification is a project of the Open API Initiative (OAI), under the auspices of the Linux Foundation. For governance of the OAI, review the [OAI's charter](https://www.openapis.org/participate/how-to-contribute/governance).
3+
The OpenAPI Specification is a project of the OpenAPI Initiative (OAI), under the auspices of the Linux Foundation. For governance of the OAI, review the [OAI's charter](https://www.openapis.org/participate/how-to-contribute/governance).
44

55
# Processes and procedures of the Technical Steering Committee (TSC)
66

IMPLEMENTATIONS.md

+32-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
### Implementations
22

3-
Below is a list of known tooling that implements the 3.0.0 specification. While support for the 3.0.0 specification matures, refer to the details of projects listed below for any notes about stability and roadmap. The process to improve the 3.x specification includes feedback from end-users and tooling creators. We strongly encourage draft tooling be made available for early users of OAS drafts.
3+
Below is a list of known tooling that implements the 3.0.0 specification. While support for the 3.0.0 specification matures, refer to the details of projects listed below for any notes about stability and roadmap. The process to improve the 3.x specification includes feedback from end-users and tooling creators. We strongly encourage draft tooling be made available for early users of OAS drafts.
44

55
These tools are not endorsed by the OAI.
66

@@ -10,27 +10,35 @@ These tools are not endorsed by the OAI.
1010
|----------------|--------------|----------|---------------------|
1111
| swagger-parser | [github/swagger-api](https://github.com/swagger-api/swagger-parser) | Java | Swagger 1.0, 1.1, 1.2, 2.0 to OpenAPI Specification converter |
1212
| swagger-models | [github/swagger-api](https://github.com/swagger-api/swagger-core/tree/master/modules/swagger-models) | Java | OpenAPI 3.0 Java Pojos |
13+
| springdoc-openapi | [github/springdoc/springdoc-openapi](https://github.com/springdoc/springdoc-openapi) | Java | Library that produces OpenAPI 3.x specification documentation for spring-boot applications. |
1314
| KaiZen OpenAPI Parser | [github/RepreZen/KaiZen-OpenAPI-Parser](https://github.com/RepreZen/KaiZen-OpenAPI-Parser) | Java | High-performance Parser, Validator, and Java Object Model for OpenAPI 3.x |
1415
| openapi3-ts | [github/metadevpro/openapi3-ts](https://github.com/metadevpro/openapi3-ts) | TypeScript | TS Model & utils for OpenAPI 3.0.x contracts |
1516
| swagger2openapi | [github/mermade/swagger2openapi](https://github.com/mermade/swagger2openapi) | Node.js | An OpenAPI / Swagger 2.0 to OpenAPI 3.0.x converter and validator |
1617
| Microsoft.OpenApi.net | [github/microsoft/OpenApi.net](https://github.com/microsoft/openapi.net/) | dotnet | C# based parser with definition validation and migration support from V2 |
1718
| odata-openapi | [github/oasis-tcs/odata-openapi](https://github.com/oasis-tcs/odata-openapi) | XSLT | OData 4.0 to OpenAPI 3.0.0 converter |
1819
| openapi3_parser | [github/kevindew/openapi3_parser](https://github.com/kevindew/openapi3_parser) | Ruby | A Ruby implementation of parser and validator for the OpenAPI 3 Specification |
19-
| oas_parser | [github/Nexmo/oas_parser](https://github.com/Nexmo/oas_parser) | Ruby | An open source OpenAPI Spec 3 Definition Parser writen in Ruby |
20-
| oas3-remote-refs | [github//OverSpeedIO/oas3-remote-refs](https://github.com/OverSpeedIO/oas3-remote-refs) | Node.js | Tool to pull remote refernences and merge them into the definitions of the provided OpenAPI3 speicfication.
20+
| oas_parser | [github/Nexmo/oas_parser](https://github.com/Nexmo/oas_parser) | Ruby | An open source OpenAPI Spec 3 Definition Parser written in Ruby |
21+
| oas3-remote-refs | [github//OverSpeedIO/oas3-remote-refs](https://github.com/OverSpeedIO/oas3-remote-refs) | Node.js | Tool to pull remote references and merge them into the definitions of the provided OpenAPI3 specification.
2122
| go-openapi | [github/nasa9084/go-openapi](https://github.com/nasa9084/go-openapi) | Go | Golang struct model for OpenAPI 3.x. |
2223
| openapi | [github/wzshiming/openapi](https://github.com/wzshiming/openapi) | Go | OpenAPI 3 Specification for golang |
24+
| kin-openapi | [github/getkin/kin-openapi](https://github.com/getkin/kin-openapi) | Go | OpenAPI 3.x implementation for Go (parsing, converting, validation) |
25+
| Spectral | [github/stoplightio/spectral](https://github.com/stoplightio/spectral) | TypeScript, JavaScript | A flexible JSON object linter with out of the box support for OpenAPI Specification 2 and 3 |
26+
| openapi-validator | [gitlab/mmal/openapi-validator](https://gitlab.com/mmalawski/openapi-validator) | PHP | Validates response against OpenAPI schema |
27+
| OpenAPI-Delphi | [github/paolo-rossi/OpenAPI-Delphi](https://github.com/paolo-rossi/OpenAPI-Delphi) | Delphi | Delphi implementation of a generator, parser and validator for the OpenAPI 3 Specification |
28+
| spring-openapi | [github/jrcodeza/spring-openapi](https://github.com/jrcodeza/spring-openapi) | Java | OpenAPI v3 generator for Java Spring. Includes also client generation. Supports inheritance with discriminators and Jackson annotations and custom interceptors. |
2329

2430
#### Editors
2531

2632
| Title | Project Link | Language |Description |
2733
|----------------|--------------|----------|---------------------|
28-
| Apicurio Studio | [github/Apicurio/apicurio-studio](https://github.com/Apicurio/apicurio-studio) | Java/Typescript | Web-Based **visual designer** for OpenAPI 2.0 and 3.0.0. |
34+
| Visual Studio Code extension | [VS Code marketplace / OpenAPI (Swagger) editor](https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi) | TypeScript | Extends VS Code to provide OpenAPI 2.0 and 3.0 navigation, code snippets, new API creation |
35+
| Apicurio Studio | [github/Apicurio/apicurio-studio](https://github.com/Apicurio/apicurio-studio) | Java/TypeScript | Web-Based **visual designer** for OpenAPI 2.0 and 3.0.0. |
2936
| KaiZen OpenAPI Editor | [github/RepreZen/KaiZen-OpenAPI-Editor](https://github.com/RepreZen/KaiZen-OpenAPI-Editor) | Java | Eclipse Editor for OpenAPI 2.0 and 3.0 |
3037
| RepreZen API Studio | [RepreZen.com/OpenAPI](https://www.reprezen.com/OpenAPI) | Java | Commercial desktop IDE for API design, documentation & development |
3138
| OpenAPI-gui | [github/Mermade/openapi-gui](https://github.com/Mermade/openapi-gui) | Node.js | GUI / visual editor for creating and editing OpenAPI definitions |
3239
| SwaggerHub | [swaggerhub.com](https://swaggerhub.com) | | API Design and Documentation Platform, Built For Teams
3340
| swagger-editor | [github/swagger-api](https://github.com/swagger-api/swagger-editor) | JavaScript | Web-Based editor for creating, editing, validating and testing OpenAPI\Swagger definitions |
41+
| Remain OpenAPI Studio | Direct download: https://remainsoftware.com/extranet/download-type/openapi-studio-download <br> Or via Eclipse MarketPlace https://marketplace.eclipse.org/content/openapi-studio-rich-oas3-editor | Java | A user-friendly, visually rich studio supporting all features defined by the OpenAPI 3. Easy but powerful UI-based components creation, API testing, import, export, code generation and much more. |
3442

3543
#### User Interfaces
3644

@@ -42,6 +50,12 @@ These tools are not endorsed by the OAI.
4250
| WebSphere Liberty | [Download jar](https://developer.ibm.com/wasdev/downloads/) | JavaScript | Includes a native OpenAPI v3 UI which allows for customization of its banners and URL |
4351
| Widdershins | [github/Mermade/widdershins](https://github.com/Mermade/widdershins) | Node.js | Generate Slate/Shins markdown from OpenAPI 3.0.x |
4452
| angular-swagger-ui | [github/angular-swagger-ui](https://github.com/Orange-OpenSource/angular-swagger-ui) | AngularJS | An angularJS implementation of Swagger UI |
53+
| Redoc | [github/Redocly/redoc](https://github.com/Redocly/redoc) | JavaScript | A React-based renderer with deep support for OAS v2 and v3 and zero dev-dependency|
54+
55+
#### Mock Servers
56+
| Title | Project Link | Language | Description |
57+
| -------------- | ------------ | -------- | ----------- |
58+
| API Sprout | [github/danielgtaylor/apisprout](https://github.com/danielgtaylor/apisprout) | Go | Lightweight, blazing fast, cross-platform OpenAPI 3 mock server with validation |
4559

4660
#### Server Implementations
4761
| Title | Project Link | Language |Description |
@@ -51,6 +65,17 @@ These tools are not endorsed by the OAI.
5165
| Modern | [github/modern-project/modern-ruby](https://github.com/modern-project/modern-ruby) | Ruby | OpenAPI 3-based Rack framework with automatic OAS generation and requests/response validation
5266
| Koa2-OAS3 | [github/OverSpeedIO/koa2-oas3](https://github.com/OverSpeedIO/koa2-oas3) | Node.js | OpenAPI 3 request validation middleware for Koa2 based apps.
5367
| Exegesis | [github/exegesis-js/exegesis](https://github.com/exegesis-js/exegesis) | Node.js | OpenAPI 3 server-side framework for express and other frameworks.
68+
| PHP-CRUD-API | [github/mevdschee/php-crud-api](https://github.com/mevdschee/php-crud-api) | PHP | Automatic CRUD API with OpenAPI 3 docs
69+
| FastAPI | [github/tiangolo/fastapi](https://github.com/tiangolo/fastapi) | Python | OpenAPI 3 based, high performance, Python 3.6+ API framework with automatic data validation, serialization and great editor support.
70+
| Fastify OpenAPI v3 | [gitlab.com/m03geek/fastify-oas](https://gitlab.com/m03geek/fastify-oas) | Node.JS | Fastify OpenAPI v3+ plugin. Generates OpenAPI specification from fastify schemas and routes. Also serves swagger ui and spec in json/yaml formats.
71+
| openapi-backend | [github/anttiviljami/openapi-backend](https://github.com/anttiviljami/openapi-backend) | Node.js, TypeScript | Build, Validate, Route, and Mock in the backend using OpenAPI v3 spec in your favourite framework
72+
73+
#### Client Implementations
74+
75+
| Title | Project Link | Language | Description |
76+
|----------------|--------------|----------|-------------|
77+
| Scorpio | [github/notEthan/scorpio](https://github.com/notEthan/Scorpio) | Ruby | OpenAPI 2 and 3 implementation offering a HTTP client library |
78+
| openapi-client-axios | [github/anttiviljami/openapi-client-axios](https://github.com/anttiviljami/openapi-client-axios) | JavaScript, TypeScript | JavaScript client library for consuming OpenAPI-enabled APIs with axios. Types included.
5479

5580
#### Code Generators
5681

@@ -59,8 +84,10 @@ These tools are not endorsed by the OAI.
5984
| baucis-openapi3 | [github/metadevpro/baucis-openapi3](https://github.com/metadevpro/baucis-openapi3) | Node.js | [Baucis.js](https://github.com/wprl/baucis) plugin for generating OpenAPI 3.0 compliant API contracts. |
6085
| Google Gnostic | [github/googleapis/gnostic](https://github.com/googleapis/gnostic) | Go | Compile OpenAPI descriptions into equivalent Protocol Buffer representations. |
6186
| Gen | [github/wzshiming/gen](https://github.com/wzshiming/gen) | Go | Generate OpenAPI 3, client, and route based on golang source code. |
62-
| serverless-openapi-documentation | [github/temando/serverless-openapi-documentation](https://github.com/temando/serverless-openapi-documentation) | Typescript | Serverless 1.0 plugin to generate OpenAPI V3 documentation from serverless configuration |
87+
| serverless-openapi-documentation | [github/temando/serverless-openapi-documentation](https://github.com/temando/serverless-openapi-documentation) | TypeScript | Serverless 1.0 plugin to generate OpenAPI V3 documentation from serverless configuration |
6388
| zero-rails_openapi | [github/zhandao/zero-rails_openapi](https://github.com/zhandao/zero-rails_openapi) | Ruby | Provide concise DSL for generating the OpenAPI Specification 3 documentation file for Rails application |
6489
| slush-vertx | [github/pmlopes/slush-vertx](https://github.com/pmlopes/slush-vertx) | Java, Kotlin & Groovy | Generate server skeleton for [Vert.x Web API Contract](http://vertx.io/docs/#web) and API Client based on [Vert.x 3 Web Client](http://vertx.io/docs/#web)
6590
| WebSphere Liberty | [Download jar](https://developer.ibm.com/wasdev/downloads/) | Java EE | Generates OpenAPI v3 documentation from Java EE applications |
6691
| swagger-node-codegen | [github/fmvilas/swagger-node-codegen](https://github.com/fmvilas/swagger-node-codegen) | Node.js | Generates a Node.js/express server, but also has a template engine for creating any templates needed. |
92+
.NET-C#-Annotations | [github/Microsoft/OpenAPI-NET-CSharpAnnotations](https://github.com/Microsoft/OpenAPI.NET.CSharpAnnotations) | dotnet | Convert your native C# comments/annotation XML from your API code into a OpenAPI document object. |
93+
| Object Oriented OpenAPI Specification | [github/goldspecdigital/oooas](https://github.com/goldspecdigital/oooas) | PHP | Generates OpenAPI documents using PHP. |

TOB.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Technical Oversight Board ("TOB")
2+
3+
## Description:
4+
> The TOB is responsible for managing conflicts, violations of procedures or guidelines or other issues that cannot be resolved in the TSC for the OAS. For further details please consult the OpenAPI Project Charter.
5+
6+
## TSC Elected - terms through May 2021
7+
Isabelle Mauny @isamauny
8+
9+
Uri Sarid @usarid
10+
11+
Marsh Gardiner @earth2marsh
12+
13+
Ron Ratovsky @webron
14+
15+
## BGB Elected - terms through May 2022
16+
17+
Darrel Miller @darrelmiller
18+
19+
Jerome Louvel @jlouvel
20+
21+
Jeremy Whitlock @whitlockjc

examples/v2.0/yaml/petstore-expanded.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,14 @@ definitions:
113113
- $ref: '#/definitions/NewPet'
114114
- required:
115115
- id
116+
type: "object"
116117
properties:
117118
id:
118119
type: integer
119120
format: int64
120121

121122
NewPet:
123+
type: "object"
122124
required:
123125
- name
124126
properties:
@@ -128,6 +130,7 @@ definitions:
128130
type: string
129131

130132
Error:
133+
type: "object"
131134
required:
132135
- code
133136
- message

examples/v2.0/yaml/petstore.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ paths:
7474
$ref: '#/definitions/Error'
7575
definitions:
7676
Pet:
77+
type: "object"
7778
required:
7879
- id
7980
- name
@@ -90,6 +91,7 @@ definitions:
9091
items:
9192
$ref: '#/definitions/Pet'
9293
Error:
94+
type: "object"
9395
required:
9496
- code
9597
- message

0 commit comments

Comments
 (0)