Releases: pb33f/libopenapi
`AllOf` retains original ordering
v0.4.13 fix: remove debug logging
v0.4.10 What Changed fixes.
Various tweaks to improve some panics and failures with what changed.
v0.4.8
v0.4.7
Improves index handling of servers.
v0.4.3
Fixes a memory leak when using libopenapi
with large numbers of specs.
v0.4.0
v0.4.0
Updates the base.Schema
for both high and low-level models to fix some inaccuracies and introduce missing properties for JSON Schema / v3.1
What was added
if
else
then
propertyNames
contains
minContains
maxContains
unevaluatedItems
unevaluatedProperties
dependentSchemas
patternProperties
What changed
DynamicValue
was added as a container for values with differing types. This follows the same pattern established in the low level model.
Items
can now be a SchemaProxy
or a bool
(using DynamicValue
), no longer a slice.
Not
is also no longer a slice.
ExclusiveMinimum
and ExclusiveMaximum
are now DynamicValue
pointers that can be either a bool
or int64
The ExclusiveMinimumBool
and ExclusiveMaximumBool
properties have been removed as they are now combined.
These are breaking changes, but it does set a standard for how to proceed.
v0.3.0
This release fixes a couple of missing elements:
- The v3 high-level
Document
object was incorrectly implemented. Thesecurity
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
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.