Skip to content

Releases: mattpolzin/OpenAPIKit

Add `OrderedDictionary`

23 Jan 06:11
4a42df0
Compare
Choose a tag to compare
Pre-release

⚠️ Breaking Changes ⚠️
Many of the Dictionary types have been replaced by a new OrderedDictionary. This means that encoding and decoding can retain the ordering of JSON/YAML objects. This ability is still contingent upon the specific encoder or decoder being used retaining that information in the course of its duties.

The Foundation library JSONEncoder retains ordering on OS X, but does not on Linux. The Foundation JSONDecoder does not retain ordering on any operating system. There is, however, currently an alternative that does retain ordering on all operating systems and seems worth trying: FineJSON.

The most popular YAML decoder/encoder, Yams, does retain ordering.

Additions and consistent `Either` specialization ordering

16 Jan 06:37
Compare
Choose a tag to compare
  • Added XML Object
  • Added security to Operations Object

⚠️ Breaking Changes ⚠️

  • Swapped order of generic specializations on Either types in a few places so that JSONReference is always the first specialization parameter when present.

Big schema generation changes

12 Jan 20:59
Compare
Choose a tag to compare
Pre-release

⚠️ Breaking Changes ⚠️
Big changes to the protocols and functions responsible for generating OpenAPI schemas from Swift types. NOTE this specifically refers to generating JSONSchemas.

Protocols were renamed or removed, functions were renamed, removed, and added. Bugs were fixed. It all functions in roughly the same way but things are much less thrown together now that I've had time to revisit the code.

Refinements

30 Dec 06:30
Compare
Choose a tag to compare
Refinements Pre-release
Pre-release
  • Omit some things that are not required when they have their default values.
  • Add some Content Types.
  • Some file restructuring and test coverage.

Better OpenAPI node generation for arbitrary Sampleable types

16 Dec 00:17
Compare
Choose a tag to compare

Brought a generation function over from JSONAPI+OpenAPI that really belongs here; that function generates OpenAPI nodes from any type that conforms to Sampleable. This means many types of JSON data can get out of box documentation.

⚠️ Breaking Changes ⚠️
Renamed a few functions and similar small changes, did a lot of work on node generation that could break downstream stuff in JSONAPI+OpenAPI dependents.

Additions, Tests, Fixes

04 Nov 01:45
104e5e1
Compare
Choose a tag to compare
Pre-release
  • Add style and explode to OpenAPI.Content.Encoding
  • Move vendor extensions encoding into shared protocol extension.
  • Add a bunch of custom encoding implementations to fix a bug where null was being written (from a small subset of types) when a property should simply be omitted from the encoded value.
  • Add some tests.
  • Better error checking around vendor extension decoding.

⚠️ Breaking Changes ⚠️
The change to omit certain values instead of encoding null is both a fix and a breaking change.

Add remaining `Parameter` properties

29 Oct 15:56
Compare
Choose a tag to compare
Pre-release

Added remaining Parameter properties. These were added under a new Parameter.Schema type because they are not applicable if a Content.Map is used instead of a JSONSchema.

⚠️ Breaking Changes ⚠️
Some restructuring was done when nesting Parameter's JSONSchema under a new Parameter.Schema type.

Ease-of-use improvements

29 Oct 01:34
Compare
Choose a tag to compare
Pre-release

Focused on making declarative OpenAPI documents easier to write in Swift.

⚠️ Breaking Changes ⚠️
A number of changes to function/initializer arguments or argument names were made. Some of these are breaking and others are not but all of them make declarative document definitions cleaner.

Add convenience constructors for `Parameter.schemaOrContent`

21 Oct 00:04
Compare
Choose a tag to compare
0.5.4

Add convenience constructors for Parameter schemaOrContent

Add `trace` HttpVerb case

20 Oct 03:19
Compare
Choose a tag to compare
Pre-release

Add missing HttpVerb.trace case.