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 OpenAPI 3.1.0 #762

Open
ysndr opened this issue Apr 4, 2024 · 2 comments
Open

Support OpenAPI 3.1.0 #762

ysndr opened this issue Apr 4, 2024 · 2 comments

Comments

@ysndr
Copy link

ysndr commented Apr 4, 2024

OpenAPI version 3.1.0 came with some breaking changes, notably, the introduction of a null type and removal of the nullable attribute.

We can work around this by patching these parts of a 3.1.0 spec to a 3.0.* spec, but i'm concerned about the implication that has on the validity of the document.

Is an extension of progenitor to support OpenAPI 3.1.0 being considered or worked on?

@ysndr ysndr changed the title support breaking changes of OpenAPI 3.1.0 Support OpenAPI 3.1.0 Apr 4, 2024
@ahl
Copy link
Collaborator

ahl commented Apr 4, 2024

Is an extension of progenitor to support OpenAPI 3.1.0 being considered or worked on?

Definitely considered. It's been low priority for us because of the generally slow uptake of 3.1. 3.1 also turns out to contain some extremely complicated features to support in particular with the adoption of JSON Schema 2020-12 and the jsonSchemaDialect property that allows random other schemas to be used instead. In addition the openapiv3 crate doesn't support 3.1--in part because the schemars crate doesn't support 2020-12.

In short: there's an expedient, but imprecise path forward that I've been deferring in the hope of doing the more complete things. Happy to discuss further if that would be helpful.

@ahl
Copy link
Collaborator

ahl commented Apr 4, 2024

And I forgot: one important change in 2020-12 is how tuples are represented. Previously it was an array with items and additionalItems. In 2020-12 it became prefixItems and items where items is now always a singleton. It's a change for the better, but is also--obviously--incompatible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants