Improve API Consistency and Ergonomics
Changes in this release:
- Added Tag type and 'tags' definitions to Swagger object
- Added ExternalDocumentation type to Schema, Operation, Swagger and Tag
- Improved + consolidated reference resolution. Fixed a bug with cyclic references.
- Separated Schema into Schema and SchemaType, the latter being an enum.
- Separated Items into Items and ItemsType, the latter being an enum.
- Extracted metadata from the enum cases into Schema and Items respectively.
- VersionTransform is now a struct for better consistency in the API.
- New 'multi' case for CollectionType, used for query strings "foo=a&foo=b"
- Added / cleaned up security requirements.
- Fixed several URL mappings that were likely failing (and untested) before.
- Removed Reference and Pointer from the public API - they are only used during building.
- Added more granularity to DecodingError, including a localized description, file and line numbers.
- Made top-level parameters, definitions, and responses into dictionaries (instead of structures) for better ergonomics.
Many thanks to @n8chur and @yonaskolb for all of their feedback and contributions!