Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for OpenAPI 3.1 #404

Open
cportele opened this issue Jun 19, 2020 · 8 comments
Open

Support for OpenAPI 3.1 #404

cportele opened this issue Jun 19, 2020 · 8 comments
Labels
Part 1: Core Issue related to Part 1 - Core

Comments

@cportele
Copy link
Member

cportele commented Jun 19, 2020

Support for OpenAPI 3.1 is already in our Charter. The work on that version has seen some delays in the OpenAPI initiative, but 3.1.0-rc0 has now been released. Since the release is now getting closer, this issue is intended to track the progress and serve as a starting point for the work on the OpenAPI 3.1 requirements class.

The key improvements for us in that version seem to be:

  • the ability to specify OpenAPI documents without path items (what Swagger currently calls domains and which we have been using for the building blocks on SwaggerHub)
  • support for JSON Schema draft 2019-09 instead of the OpenAPI 3.0 Schema object
  • support for mutual TLS
  • better support for webhooks

As an aside, they are also getting rid of the use of "RESTful" 😉. We use Web API, they move to HTTP API.

@cportele cportele added enhancement Future work support in an additional part of OGC API Features OpenAPI 3.1 labels Jun 19, 2020
@cportele cportele added this to Waiting for input in Part n: OpenAPI 3.1 Jun 19, 2020
@akuckartz
Copy link

they are also getting rid of the use of "RESTful"

Well, they never seemed to conform to all REST criteria.

@m-mohr
Copy link
Contributor

m-mohr commented Jun 24, 2020

Just curious: Why is this tagged with "support in extension"?

@cportele
Copy link
Member Author

@m-mohr - Because the current plan is to add this in a new part (part 5). The OpenAPI 3.0 conformance class will continue to exist in part 1. Maybe we will also decide to add OpenAPI 3.1 as an additional conformance class in part 1, but this is not what the current charter says.

@m-mohr
Copy link
Contributor

m-mohr commented Jun 24, 2020

Wouldn't that lead to quite some redundant work as two separate OpenAPI definitions need to be maintained in the specs? I'm just wondering, because it also seems that if you want to do OpenAPI 3.1 in "implementing"/extending APIs such as STAC or openEO, you'd also have to maintain 3.0 and 3.1 in all of them?

@cportele
Copy link
Member Author

We will have to keep the OpenAPI 3.0 conformance class "forever" (or at least as long as it is used in practice, maybe it can be deprecated at some point, but that will not be anytime soon). Support for multiple API definitions is part of the design, like support for multiple feature encodings.

And APIs don't have to support both, they may also decide to support only 3.0 or 3.1, typically depending on knowledge about clients that will process the API definition. Just like we worked 2-3 years ago initially also with Swagger / OpenAPI 2.0 since tooling often didn't support OpenAPI 3.0 yet, but dropped that once tooling support was there.

@m-mohr
Copy link
Contributor

m-mohr commented Jun 24, 2020

Yes, understood, but I was more referring to the maintenance of the OpenAPI files in this repo and the STAC repo etc. Not so much about the actual API implementations linking to the files via service-doc/desc. That for sure needs to stay as it is for compliance. So you'll manage two OpenAPI definitions for each OpenAPI version separately or is there something like a 3.1 to 3.0 converter (or so) planned?

@cportele
Copy link
Member Author

It is something for discussion, but I think we will end up with providing the building blocks in both for 3.0 and 3.1.

Strictly this would not be necessary just for the standard, since we (currently) use OpenAPI 3.0 to formally specify the requirements. But for reuse in implementations we should provide all building blocks in both versions, in particular as 3.1 is not backwards compatible with 3.0 (OAS no longer uses semantic versioning).

@cportele
Copy link
Member Author

Finally, OpenAPI 3.1.0 has been released: https://github.com/OAI/OpenAPI-Specification/releases/tag/3.1.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Part 1: Core Issue related to Part 1 - Core
Projects
Part 1: Core
  
Backlog
Development

No branches or pull requests

3 participants