Skip to content

Releases: mattpolzin/OpenAPIKit

Sometimes One Isn't Enough

19 Jul 15:44
4991b7e
Compare
Choose a tag to compare

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

Full Changelog: 3.1.3...3.2.0

Leave A Message

26 Apr 04:24
Compare
Choose a tag to compare
Leave A Message Pre-release
Pre-release

What's Changed

  • Port of ExternallyDereferenceable to OpenAPIKit30 (#373)
  • Support arbitrary messaging from external loaders (#374)

Breaking Changes

  • The Document externallyDereference() function's first argument label has been renamed from in to with. This fits the language better: "dereference a document with a particular Loader."
  • The ExternalLoader protocol's load() 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 to Void and always return an empty array. The new return is there to facilitate you passing information back to yourself from the load() 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)

23 Apr 16:12
7539414
Compare
Choose a tag to compare

What's Changed

Non-Breaking

  • Add JSONSchema support for anchors (#360)
  • Fix equality comparison of URL AnyCodables (#371)

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)

25 Feb 06:11
6bd7c07
Compare
Choose a tag to compare
Null Happens (4) Pre-release
Pre-release

What's Changed

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

Full Changelog: 4.0.0-alpha.2...4.0.0-alpha.3

Null Happens

24 Feb 21:34
33a9984
Compare
Choose a tag to compare

What's Changed

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

Full Changelog: 3.1.2...3.1.3

Stronger Inference? (4)

07 Dec 20:43
7b59773
Compare
Choose a tag to compare
Pre-release

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?

07 Dec 20:34
2834548
Compare
Choose a tag to compare

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

03 Dec 00:45
0629b7e
Compare
Choose a tag to compare
Early Equality Pre-release
Pre-release

Non-breaking Changes

  • Improvements to AnyCodable equality and ability to encode any Encodable (#351)

Breaking Changes

  • Drop support for Swift versions prior to 5.8 (#339)
  • Fix typos for serverVarialbeEnumIsValid and serverVarialbeDefaultExistsInEnum (#348)

New Contributors

Full Changelog: 3.1.1...4.0.0-alpha.1

Allowed but not seen

20 Nov 17:07
b00b08d
Compare
Choose a tag to compare

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

14 Nov 00:47
b1d7ed3
Compare
Choose a tag to compare

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