Azure / autorest

OpenAPI (f.k.a Swagger) Specification code generator. Supports C#, PowerShell, Go, Java, Node.js, TypeScript, Python
MIT License
4.63k stars 739 forks source link

Plan to support OpenAPI 3.1 #3727

Open OzBob opened 3 years ago

OzBob commented 3 years ago

A placeholder Issue for OpenAPI 3.1 support

Just read an article on the differences: https://stoplight.io/blog/difference-between-open-v2-v3-v31/

  1. Full JSON Schema Support
  2. Semantic Versioning Dropped
  3. Paths Are Now Optional
  4. Single “Example” Keyword Has Been Deprecated
  5. Type Can Now Be An Array
  6. Nullable is No More
  7. Null is now supported
daviwil commented 3 years ago

Currently we do not have a plan to add OpenAPI 3.1 support. We will comment back here if that changes!

YohanSciubukgian commented 1 year ago

Do you have any update regarding OpenAPI 3.1 support?

mikekistler commented 1 year ago

I don't think anything has changed but I'm interested to know what specific features you want.

OzBob commented 1 year ago

@mikekistler 3.1 changes new features, i am interested in.

  1. multiple examples
  2. "contentEncoding and contentMediaType" has breaking change side effects
  3. Updated primitive types to be based on JSON Schema Specification Draft 2019-09.

Any of the extended functionality:

Extended Functionality Updated primitive types to be based on JSON Schema Specification Draft 2019-09. This now includes type null. Lifted the restriction of allowing Request Body only in HTTP methods where the HTTP 1.1 specification RFC7231 has explicitly defined semantics for. While allowed in other methods, it is not recommended. Added support to object type for spaceDelimited and pipeDelimited style values. The Encoding Object now supports style, explode and allowReserved for multipart/form-data media type as well. To enable better webhooks support, expressions in the Callback Object can now also reference Path Item Objects. When using the Reference Object, summary and description fields can now be overridden. The Schema Object is now fully compliant with JSON Schema draft 2019-09 (see JSON Schema Core and JSON Schema Validation). See also, Breaking Changes The Discriminator Object can now be extended with Specification Extensions. Added support for mutual TLS (mutualTLS) as a security scheme. Used security requirements can now define an array of roles that are required for execution (and not only scopes for OAuth 2.0 security schemes).

Personally, I have started to sway over to NWagStudio rather than autoreset for client generation.