Releases: pb33f/libopenapi
v0.2.0 what-changed feature available
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.