Releases: mattpolzin/OpenAPIKit
Sometimes One Isn't Enough
What's Changed
- Add JSONSchema support for anchors (#360)
- Fix equality comparison of URL AnyCodables (#371)
- Fix typo: secutity -> security by @timimahoney (#375)
- Add JSON Schema
$defs
encoding & decoding (#376) - Add support for multiple content types on one content encoding object (#379)
Deprecations
Support for multiple content types on encoding objects was added via a new contentTypes
property; with that, the existing contentType
(singular) property has been deprecated and will be removed in the next major version.
New Contributors
- @timimahoney made their first contribution in #375
Full Changelog: 3.1.3...3.2.0
Leave A Message
What's Changed
- Port of
ExternallyDereferenceable
toOpenAPIKit30
(#373) - Support arbitrary messaging from external loaders (#374)
Breaking Changes
- The Document
externallyDereference()
function's first argument label has been renamed fromin
towith
. This fits the language better: "dereference a document with a particular Loader." - The
ExternalLoader
protocol'sload()
function needs to return an array of "messages" now. If you don't have use for these messages, you can set the type of the message toVoid
and always return an empty array. The new return is there to facilitate you passing information back to yourself from theload()
function.
Big Picture
Now external loading (a.k.a. external dereferencing of JSON references) is supported by both modules of OpenAPIKit. Check out the README, OpenAPI.Document
's externallyDereference()
docs, and ExternalLoader
docs.
Full Changelog: 4.0.0-alpha.4...4.0.0-alpha.5
The grass is always greener (in another file)
What's Changed
Non-Breaking
Breaking
- Raise minimum Yams version. by @brandonbloom in #366
- Load external references (OAS 3.1 documents only) (#369)
- Raise minimum MacOS version to
v10_15
Highlights
This version introduces preliminary support for resolving external JSON references (to other files). Initially this is only supported by the OpenAPIKit
module, both support for OpenAPIKit30
is planned.
See the README and the ExternalLoader
protocol documentation for details on how to use the new functionality.
Full Changelog: 4.0.0-alpha.3...4.0.0-alpha.4
Null Happens (4)
What's Changed
- fix "nullable" decoding by @brandonbloom in #356
Technically nullable
decoding was not broken for v3.1 documents, but this patch version introduces some leniency which allows decoding documents that contain the nullable
keyword. This keyword was the way of specifying nullability in v3.0 of the spec but in v3.1 the keyword was removed entirely. OpenAPIKit will now warn but automatically translate the nullable
keyword into a valid v3.1 representation.
New Contributors
- @brandonbloom made their first contribution in #356
Full Changelog: 4.0.0-alpha.2...4.0.0-alpha.3
Null Happens
What's Changed
- fix "nullable" decoding by @brandonbloom in #356
Technically nullable
decoding was not broken for v3.1 documents, but this patch version introduces some leniency which allows decoding documents that contain the nullable
keyword. This keyword was the way of specifying nullability in v3.0 of the spec but in v3.1 the keyword was removed entirely. OpenAPIKit will now warn but automatically translate the nullable
keyword into a valid v3.1 representation.
New Contributors
- @brandonbloom made their first contribution in #356
Full Changelog: 3.1.2...3.1.3
Stronger Inference? (4)
Bug fixes
- Retain
inferred
property when updating any other property of a core context using a helper function (#352)
Full Changelog: 4.0.0-alpha.1...4.0.0-alpha.2
Stronger Inference?
Bug Fixes
- Retain
inferred
property value when updating any other property of a core context using a helper function (#352)
Full Changelog: 3.1.1...3.1.2
Early Equality
Non-breaking Changes
- Improvements to
AnyCodable
equality and ability to encode anyEncodable
(#351)
Breaking Changes
- Drop support for Swift versions prior to 5.8 (#339)
- Fix typos for
serverVarialbeEnumIsValid
andserverVarialbeDefaultExistsInEnum
(#348)
New Contributors
- @PARAIPAN9 made their first contribution in #348
Full Changelog: 3.1.1...4.0.0-alpha.1
Allowed but not seen
What's Changed
- Simply ensure that
jsonSchemaDialect
at document root and the$schema
keyword within JSON Schemas do not fail to parse (#349)
Full support for these keywords will come with #202.
Full Changelog: 3.1.0...3.1.1
Explicitly Inferred
What's Changed
- Differentiate propertyless requirements (#343) / (#347)
- Fix bug with conversion dropping explode property of parameters (#346)
Identifying required
entries that do not refer to properties
in the immediate JSON Schema
Take the following two schema snippets:
Foo:
type: object
properties:
a:
type: string
required:
- b
and
Foo:
type: object
properties:
a:
type: string
b: {}
required:
- b
Prior to this version, both of those snippets would have been represented identically within OpenAPIKit
. After this version, the first schema’s “b” property will answer true
to the new JSONSchema
inferred
property and the second schema’s “b” property will answer false
. In fact, the only current situation where a JSON Schema is considered "inferred" is when a .fragment
schema is produced by an entry in an object's required
array that has no matching properties
entry on the same object; we say that the existence of such a property is inferred from the fact that such a property being required by name.
Full Changelog: 3.0.1...3.1.0