Skip to content

Releases: pb33f/libopenapi

v0.3.0

30 Nov 15:28
Compare
Choose a tag to compare

This release fixes a couple of missing elements:

  • The v3 high-level Document object was incorrectly implemented. The security property needed to be a slice. Breaking
  • Server was missing extensions in both high and low-level APIs.

This is a whole feature bump because of the change to the Document model. security is now a slice, not a single instance. A small breaking change, but a breaking one none-the-less.

v0.2.0 what-changed feature available

21 Nov 16:41
Compare
Choose a tag to compare

v0.2.0 Update for libopenapi

What's New?

What Changed

The what-changed feature has been added to libopenapi. It's a Swagger and OpenAPI 3+ diff engine that checks every single property of every single element in a specification.

Using the low-level model of a document, the feature runs up and down the model looking for changes between left and right versions of objects.

This required the build-out of new methods in the low-level models to support hashing and some generics getters required by the unified model.

PrefixItem support for 3.1 JSONSchema

Now available in the Schema object shared by all models.

Breaking Changes

Swagger enums breaking change

I realized that the v2 model has the same primitive/enum issues that are partly cleaned up in v3. This is a breaking change because enums are now []any and not []string, as well as primitives for bool, int, etc., are all pointers now instead of the copied values.

This will break any consumers.

Updated model builder to use lowercase checks only. breaking change

The case checking seems kinda dumb now, looking back at this code. I am not sure why I felt the need to do that. However after being aware of it for some time and not being happy with the extra cycles, it puts the code through.

This change removes ConvertCase from the utils package, as it's no longer used or needed. If it needs to come back, we can re-add the code, but deleting code always makes me happy. It also removed a dependency from the project, which reduces the footprint; great!

Refactored SecurityRequirement breaking change

The v3 model is wrong and out of sync with the spec. It's been corrected, so the v2 and v3 models for SecurityRequirement have collapsed into a base model. They are the same data structures. This has allowed me to delete the complexity of sharing two different models for the same structure by unifying the model correctly. I don't know why I decided to change the v3 model. Oh well, it's been corrected.