Skip to content

Latest commit

 

History

History
1139 lines (928 loc) · 70.4 KB

CHANGELOG.rst

File metadata and controls

1139 lines (928 loc) · 70.4 KB

Changelog

0.26.3 (2023-06-22)

  • allow implicit list expansion of PolymorphicProxySerializer #995
  • selectively distinguish real serializers from mocked ones #1006
  • fix functionality gap for decoration of django-filter fields #1007
  • add pydantic blueprint
  • robustify subclass check in extensions #1006
  • Prevent exception for non-serializer classes targeted by SerializerExtensions #1006
  • add middleware support for djangorestframework_camel_case
  • close functionality gap in drf dataclasses naming #1004
  • fix: Camelize query parameters [v.kovalchuk]
  • docs(examples): Fix wrong bool value in example [schew2381]
  • bugfix test #991
  • bugfix duplicate enum list for django-filter #991
  • dj-rest-auth test changes 3.x -> 4.x
  • Add blocks to redoc template #978

Breaking changes / important additions:

  • no major changes but a multiude of small improvements.
  • we are now a lot more tolerant when it comes to writing extensions for non-standard classes (e.g. Pydantic).
  • there should be no unexpected schema changes except for when ``djangorestframework_camel_case ``'s Middleware is used.

0.26.2 (2023-04-15)

  • fix jwt cookie name settings not being recognised (#972) [Nix Siow]
  • Add OpenApiRequest for encoding options #714 #965

Breaking changes / important additions:

  • small bugfix release that also contains the new OpenApiRequest feature

0.26.1 (2023-03-18)

  • reorder typed polymorphic fields #958
  • Fix test warnings [Dmitry Gribanov]
  • Fix PolymorphicSerializer type field handling #885 #958
  • Add PresentablePrimarKeyRelatedField schema for drf-exrta-fields blueprint [Đào Minh Hạt]
  • bugfix KeyError for disabled ENUM_GENERATE_CHOICE_DESCRIPTION #952

Breaking changes / important additions:

  • small bugfix release that addresses a issue when turning off choice description generation
  • improve/bugfix PolymorphicSerializer type field handling

0.26.0 (2023-03-04)

  • honor djangorestframework_camel_case settings "ignore_keys" and "ignore_fields" #945
  • If available, use docstrings from properties for field descriptions (#954)
  • Don't let validators override values already set in the schema (#911) [StopMotionCuber]
  • add test and another case to #901
  • add enum key/value list to description string #337 #403 #105 #563
  • Add option to provide a callable for PolymorphicProxySerializer.serializers [Glenn Matthews]
  • consolidate sort fix for enum sorting
  • add testcase to #950. ensure raw schema dict remains unmodified
  • Don't edit the orignal django-filters schema. [Will Giddens]
  • Fix typos and grammer errors in FAQ doc page. [Foad Lind]
  • fix OpenApiResponse nested example defaults #875
  • mitigate runtests.py fail when GDAL library is not installed #945 #821 #775 #777
  • bugfix SlugRelatedField with a model property target #943
  • suppress erroneous warning for optional extensions #940
  • fix whitelist mechanics (enables deny all) #923
  • mitigate many=True with default array value #936
  • fix dj-rest-auth>=3.0.0 breaking changes #937
  • Update plumbing.py
  • add swagger UI template blocks for customization [Jan Lis]
  • Add support for drf ReturnList and ReturnDict hint [zengqiu]
  • add example/test for DynamicFieldsModelSerializer #375 #912
  • adapt test schema for dj-rest-auth 2.2.6
  • clarify docs for postproc hook mechanics #908
  • Add test for custom serializer field pagination #904
  • fix: let use a default value for foreignkey model field [Frederic de Zorzi]

Breaking changes / important additions:

  • A lot of bug fixes and a few feature additions.
  • We now render a descriptive Enum key/value list into the description by default. Opt-out with new setting ENUM_GENERATE_CHOICE_DESCRIPTION.
  • Beware that we now extract more docstrings. Check your schema diff on update whether you are now leaking unintended information.
  • The whitelist mechanics changed slightly on what is considered default behavior.
  • Fix a breaking change in dj-rest-auth>=3.0.0
  • It should not be possible to run the tests without installing system libraries like GDAL for the contrib tests

0.25.1 (2022-12-16)

  • Fix warning source line performance regression #889 #897
  • improve warning for transient @api_view objects #889
  • adapt package arg due to setuptools deprecation #786
  • utilize queryset for SlugRelatedField #897

Breaking changes / important additions:

  • Bugfix release that addresses a performance regression in SpectacularApiView and an oversight in the now stricter handling of SlugRelatedField

0.25.0 (2022-12-13)

  • Fix missing description for ManyRelatedField and tested for SlugField (#895) [StopMotionCuber]
  • Simplify hashable_values #833
  • Add custom settings to CLI (view parity) #892
  • fix function misnomer #891
  • improve trace messages / warnings & add color #866
  • Treat SlugRelatedField analog to PrimaryKeyRelatedField #854
  • Include filename in call to _get_sidecar_url [Justin Spencer]
  • add django-parler blueprint #887
  • add a view to handle SwaggerUI oauth callbacks (#882) [Finn-Thorben Sell]
  • improve documentation
  • Introduce setting DEFAULT_QUERY_MANAGER to allow other managers for querset retrieval
  • fix flake8 6.0.0 breaking change
  • fix example list detection (symmetry with schema) #872
  • Use direct view methods for getting serializer instances [Numerlor]
  • name overrides for rest_framework_dataclasses #839
  • decouple TypedDict class from Py version #861 #654
  • bugfix djangorestframework_camel_case #861
  • bugfix djangorestframework_camel_case nested object handling #861
  • Utils: Replace List[] with Sequence[], because of Mypy note 'List is invariant. Consider using Sequence instead.' [Hans Aarne Liblik]
  • Fixed minor typos [Conrad]
  • Removing blank and null keys when generating the overridden choices hash to match the hash generation logic in the enum post processor hook [Trent Holliday]
  • fix test fixture overlap #826
  • specifiy min patch release for DRF (fixes #812)
  • Preserve context in get_list_serializer. [Brady Dean]
  • Allow field extensions to return None from map_serializer_field [Andrew Backer]

Breaking changes / important additions:

  • Officially set the lower bound for DRF version to 3.10.3
  • Refactored the CLI warning system for better code navigation / orientation, GUI support and color!
  • Some minor mechanics changes, several overall improvements, feature additions, and a few bugfixes.

0.24.2 (2022-09-26)

  • robustify extension class loading #821
  • fix regression due to GIS import for django-filter #821

Breaking changes / important additions:

  • Hotfix release to mitigate optional GDAL import errors for django-filter.

0.24.1 (2022-09-23)

  • bugfix GeometryFilter for GIS and django-filter #814
  • NullBooleanField comment and add 3.14.0 to test suite #818
  • fix: #816 NullBooleanField does not exist in DRF >= 3.14.0 [Laurent Tramoy]
  • fix GIS source lookup with hops #813
  • Add blueprint for Stoplight Elements docs UI [Alex Burgel]
  • fix OpenApiParameter enum and pattern for many=True #808

Breaking changes / important additions:

  • Hotfix release to mitigate removal of NullBooleanField in DRF 3.14.0
  • Small fixes to OpenApiParameter and django-filter

0.24.0 (2022-09-14)

  • fix yaml serialization error on Django SafeString #802
  • mitigate DRF bug in ObtainAuthToken < 3.12.0 #796
  • add FAQ entry for django-csp errors #173 #797
  • bugfix TokenMatchesOASRequirements #469 and JWTCookieAuthentication #626
  • add custom redoc settings option
  • fix error with PrimaryKeyRelatedField on non-ModelSerializer #353
  • provide context to serializer for @extend_schema use-cases #699
  • add example value hint to doc #788
  • fix packages= so top_level.txt is correct [anthony sottile]
  • Adding documentation for the OpenApiParameter 'many' argument [Paul Wayper]
  • Extend OpenApiSerializerExtension interface. #392 #705
  • Include context with request when instantiating serializers [Mike Hansen]

Breaking changes / important additions:

  • Some minor gaps closed in the extension interface and serializer context initialization. It is a y-stream release, because there remains a small chance of change for users that sport non-standard customizations.

0.23.1 (2022-07-26)

  • improve CAMELIZE_NAMES doc #774
  • move import into build_geo_schema function [bidaya0]

Breaking changes / important additions:

  • Hotfix release to mitigate unwanted import of optional GIS features that depend on GDAL. GDAL is not a new requirement.

0.23.0 (2022-07-25)

  • fix infinite recursion when accessing missing attributes in generator stats [Oleg Hoefling]
  • fix list pagination when examples are provided [topher235]
  • accept integer status codes in OpenApiExample [Nicholas Guriev]
  • Missing ":" in example documentation [Josué Millán Zamora]
  • Flip direction for callbacks serializers [Justas]
  • grammar fix [Kojo Idrissa]
  • fix sidecar for alternate staticfile storages #718
  • add support for rest_framework_gis
  • add mechanism to handle custom ListSerializers with extensions
  • Update based on review [johnthagen]
  • Hyphenate in-memory [johnthagen]
  • Add FAQ entry for how to serve in-memory generated files [johnthagen]
  • add pattern to OpenApiParameter #738
  • Add test that extend_schema_field on django-filter is not modified [Take Weiland]
  • Do not forcefully overwrite enum setting on custom django-filter schema [Take Weiland]
  • django-filter: Enable type extraction fallback for MultipleChoiceFilter as well [Take Weiland]
  • Add examples camelization note to settings.py [Zac Miller]
  • fix codecov badge url issue on github #713

Breaking changes / important additions:

  • A whole bunch of smaller bug fixes.
  • OpenAPI Callbacks should now be production ready
  • Introduction of rest_framework_gis support. This might impact APIs that are using GIS so this is a y-stream release.

0.22.1 (2022-04-25)

  • Update customization.rst [Lane Zhang]
  • Remove invalid example in drf-yasg migration documentation. [Nick Pope]
  • Avoid using default role in documentation. [Nick Pope]
  • Small documentation fixes. [Nick Pope]
  • improve parameter many handling and warnings #703
  • bugfix unconsidered warnings/errors for return code #706 #702
  • Include a list of applications urls as a parameter for SERVE_URLCONF #709 [anoirak]
  • bugfix/improve analyze_named_regex_pattern(path) #697 [Jon Iturmendi]
  • django-filter: added type extraction fallback for ChoiceFields #690
  • fix test, more precise naming, also wrap validation #693
  • bugfix PolymorphicProxySerializer many handling and add manual mode #692
  • Use Django management CommandError to eliminate the traceback on error [Brandon W Maister]
  • add swagger_fake_view FAQ entry #321
  • Fix #688 - avoid a TypeError when ChoiceFilter choices are a callable [Glenn Matthews]
  • map explicit float hints/decoration to double #687 #674

Breaking changes / important additions:

  • Small release consisting of minor bug fixes, improved PolymorphicProxySerializer, cleaned up documentation, and some improvements to django-filter

0.22.0 (2022-03-21)

  • Added detype_patterns() with @cache. [Nick Pope]
  • add "externalDocs" to operation via extend_schema #681
  • warn on invalid components names #685
  • wrap examples in list/pagination when serializer is many=True #641 #640 #595
  • python's and django's float is really "double precision" #674
  • Support negative numbers in pattern regex for coerced decimal fields [Mike Hansen]
  • add OpenAPI callback operations #665
  • Keep the urlpatterns in the apiview and pass it to the generator [Jorge Cardona]
  • django-filter: raise priority of explicitly given filter method type hints #660
  • also allow @extend_schema_field on django-filter filter method #660
  • accommodate pyright limitations #657
  • fix doc extraction for built-in types #654
  • use get_doc for description [Josh Ferge]
  • add more information to resolved TypedDicts [Josh Ferge]
  • fix url escaping bug introduced in #556 (#650)
  • pass through version from UI to schema endpoint #650
  • factor out schema_url generation #650
  • relax AcceptHeaderVersioning contraint for modification #650
  • Enable the use of lists in extend_schema_view() [François Travais]

Breaking changes / important additions:

  • This is a y-stream release with a lot of bugfixes, some new features and potentially small schema changes (if affected features are used).
  • Examples are now wrapped in pagination/lists when endpoint/serializer is many=True
  • django-filter had some internal restructuring and thus overrides are now always honored.
  • added callback functionality (EXPERIMENTAL and subject to change due to pending issue)
  • Many thanks to all the contributors!

0.21.2 (2022-02-01)

  • Add support for djangorestframework-dataclasses [Oxan van Leeuwen]
  • add version to schema for AcceptHeaderVersioning #637
  • FAQ for @api_view #635
  • add extensions for dj_rest_auth's JWTCookieAuthentication #626

Breaking changes / important additions:

  • Some minor bugfixes and feature additions. Schemas using AcceptHeaderVersioning contain a small change.

0.21.1 (2021-12-20)

  • add root level extension setting #619
  • ease schema browser handling with "Content-Disposition" #607
  • custom settings per SpectacularAPIView instance #365
  • Support new X | Y union syntax in Python 3.10 (PEP 604) [Marti Raudsepp]
  • upstream release updates, compat test fix for jwt, consistency fix
  • add blueprint for django-auth-adfs [1110sillabo]
  • use is_list_serializer instead of isinstance() [Roman Sichnyi]
  • Fix schema generation for RecursiveField(many=True) [Roman Sichnyi]
  • enable clearing auth methods with empty list #99
  • Fix typos in the code example [Marcin Kurczewski]

Breaking changes / important additions:

  • Some minor bugfixes and small feature additions. No large schema changes are expected

0.21.0 (2021-11-10)

  • add renderer & parser whitelist setting #598
  • catch attr exception for invalid SerializerMethodField #592
  • add regression test for catch-all status codes #573
  • bugfix OpenApiResponse without description argument #591
  • introduce direction literal / import consolidation #582
  • mitigate CORS issues for external requests in Swagger UI #588
  • Swagger UI authorized schema retrieval #342 #458
  • remove cyclic import warning as fixes haves mitigated the issue. #581
  • bugfix: anchor parameter patterns with ^$
  • bugfix isolation of derivatives for @extend_schema_serializer/@extend_schema_field #585
  • add support for djangorestframework-recursive #586
  • Add blueprint for drf-extra-fields Base64FileField [johnthagen]
  • Add note about extensions registering themselves [johnthagen]
  • Document alternative to drf-yasg swagger_schema_field [johnthagen]
  • allow to bypass list detection for filter discovery #407
  • add blueprint (closes #448), fix test misnomer
  • non-blank string enforcement for parameters #282
  • add setting ENFORCE_NON_BLANK_FIELDS to enable blank checks #186

Breaking changes / important additions:

  • Fixed two more decorator isolation issues.
  • Added Swagger UI plugin to handle reloading the schema on authentication changes ('SERVE_PUBLIC': False).
  • Added minLength where a blank value is not allowed. Apart the the dedicated setting, it is implicitly enabled by COMPONENT_SPLIT_REQUEST.
  • Several other small fixes and additional settings for corner cases. This is mainly a y-steam release due to the potential impact on the Swagger UI and minLength changes.

0.20.2 (2021-10-15)

  • add setting for manual path prefix: SCHEMA_PATH_PREFIX_INSERT #567
  • improve type hint for @extend_schema_field #569
  • bugfix COMPONENT_SPLIT_REQUEST for empty req/resp serializers #572
  • Make it cleared that ENUM_NAME_OVERRIDES is a key within SPECTACULAR_SETTINGS [johnthagen]
  • Improve formatting in customization docs [johnthagen]
  • bugfix @extend_schema_view on @api_view #554
  • bugfix isolation for @extend_schema/@extend_schema_view reorg #554
  • Fix inheritance bugs with @extend_schema_view(). [Nick Pope]
  • Allow methods in @extend_schema to be case insensitive. [Nick Pope]
  • Added a documentation blueprint for RapiDoc. [Nick Pope]
  • Tidy templates for documentation views. [Nick Pope]
  • Use latest version for CDN packages. [Nick Pope]

Breaking changes / important additions:

  • Mainly a bugfix release that solves several longstanding issues with @extend_schema_view/@extend_schema annotation isolation. There should be no more side effects from arbitrarily mixing and matching the decorators.
  • Improved handling of completely empty serializers with COMPONENT_SPLIT_REQUEST.

0.20.1 (2021-10-03)

  • move swagger CDN to jsdelivr (unpkg has been flaky)
  • bugfix wrong DIST setting in Redoc #546
  • Allow paginated_name customization [Georgy Komarov]

Breaking changes / important additions:

  • Hotfix release due to regression in the Redoc template

0.20.0 (2021-10-01)

  • Add support for specification extensions. [Nick Pope]
  • add example injection for (discovered) parameters #414
  • Fix crash with read-only polymorphic sub-serializer. [Nick Pope]
  • Add arbitrarily deep ListSerializer nesting #539
  • tighten serializer assumptions #539
  • fix whitespace stripping on methods
  • Rename AutoSchema._map_field_validators().insert_field_validators(). [Nick Pope]
  • Rename AutoSchema._map_min_max().insert_min_max(). [Nick Pope]
  • Fix detection of int64 from min/max values. [Nick Pope]
  • Fix zero handling in _map_min_max(). [Nick Pope]
  • Add support for introspection of nested validators. [Nick Pope]
  • Fix invalid schemas caused by validator introspection. [Nick Pope]
  • Overhaul validator logic. [Nick Pope]
  • support multiple headers in OpenApiAuthenticationExtension #537
  • docs: Missing end quote for INSTALLED_APPS [Prayash Mohapatra]
  • update doc #530
  • introducing the spectacular sidecar
  • fallback improvements to typing system with typing_extensions

Breaking changes / important additions:

  • Added vendor specification extensions
  • Completetly overhauled validator logic and bugfixes
  • Offline UI assets with optional drf-spectacular-sidecar package
  • several internal logic improvements and stricter assumptions

0.19.0 (2021-09-21)

  • fix/cleanup suffixed path variable coercion #516
  • remove superseded Request mock from oauth_toolkit
  • be gracious on Enums that are not recognized by DRF #500
  • remove non-required empty descriptions
  • added test case for lookup_field #524
  • Fix grammatical typo [johnthagen]
  • remove mapping for re.Pattern (no 3.6 and mypy issues) #526
  • Add missing types defined in specification. [Nick Pope]
  • Add type mappings for IP4, IP6, TIME & DURATION. [Nick Pope]
  • add support for custom converters and coverter override #502
  • cache static loading function calls
  • prevent settings loading in types, lazy load in plumbing instead
  • lazy settings loading in drainage
  • Improve guide for migration from drf-yasg. [Nick Pope]
  • handle default value for SerializerMethodField #422
  • consolidate bearer scheme generation & bugfix #515
  • prevent uncaught exception on modified django-filter #519
  • add decoupled model docstrings #522
  • Fix warnings raised during testing. [Nick Pope]
  • add name override to @extend_schema_serializer #517
  • Fix deprecation warning about default_app_config from Django 3.2+ [Janne Rönkkö]
  • Remove obsolete value from IMPORT_STRINGS. [Nick Pope]
  • Add extension for TokenVerifySerializer. [Nick Pope]
  • Use SESSION_COOKIE_NAME in SessionScheme. [Nick Pope]
  • add regex path parameter extraction for explicit cases #510
  • honor lookup_url_kwarg name customization #509
  • add contrib compat tests for drf-nested-routers
  • improve path coersion model resolution
  • add test_fields API response test #501
  • Handle 'lookup_field' containing relationships for path parameters [Luke Plant]
  • add BinaryField case to tests #506
  • fix: BinaryField's schema type should be string #505 (#506) [jtamm-red]
  • bugfix incomplete regex stripping for literal dots #507
  • Fix tests [Jameel Al-Aziz]
  • Fix type hint support for functools cached_property wrapped funcs [Jameel Al-Aziz]
  • Extend enum type hint support to more Enum subclasses [Jameel Al-Aziz]

Breaking changes / important additions:

  • Severely improved path parameter detection for Django-style parameters, RE parameters, and custom converters
  • Significantly more defensive settings loading for safer project imports (less prone to import loops)
  • Improved type hint support for Enum and other native types
  • Explicit support for drf-nested-routers
  • A lot more small improvements

0.18.2 (2021-09-04)

  • fix default value handling for custom ModelField #422
  • fill html title with title from settings #491
  • add Enum support in type hints #492
  • Move system check registration to AppConfig [Jameel Al-Aziz]

Breaking changes / important additions:

  • Primarily ironing out another issue with the Django check and some minor improvements

0.18.1 (2021-08-31)

  • Improved docs regarding how ENUM_NAME_OVERRIDES works [Luke Plant]
  • bugfix raw schema handling for @extend_schema_field on SerializerMethodField method 481
  • load common SwaggerUI dep SwaggerUIStandalonePreset #483
  • allow versioning of SpectacularAPIView via query #483
  • update swagger UI
  • move checks to "--deploy" section, bugfix public=True #487

Breaking changes / important additions:

  • This is a hotfix release as the newly introduced Django check was executing the wrong code path.
  • Check also moved into the --deploy section to prevent double execution. This can be disabled with ENABLE_DJANGO_DEPLOY_CHECK
  • Facitities added to utilize SwaggerUI Topbar for versioning.

0.18.0 (2021-08-25)

  • prevent exception and warn when ReadOnlyField is used with non-ModelSerializer #432
  • allow raw JS in Swagger settings #457
  • add support for check framework #477
  • improve common FAQ @action question #399
  • update @extend_schema doc #476
  • adapt to changes in iMerica/dj-rest-auth 2.1.10 (ResendEmailVerification)
  • add raw schema to @extend_schema(request={MIME: RAW}) #476
  • bugfix test case for 3.6 #474
  • bugfix header underscore handling for simplejwt #474
  • properly parse TokenMatchesOASRequirements (oauth toolkit) #469
  • add whitelist setting to manage auth method exposure #326 #471
  • Update set_password instead of list [Greg Campion]
  • Update documentation to illustrate how to override a specific method [Greg Campion]

Breaking changes / important additions:

  • This is a y-stream release because we added Django checks which might emit warnings and subsequently break CI. This can be easily suppressed with Django's SILENCED_SYSTEM_CHECKS.
  • Several small fixes and features that should not have a big impact.

0.17.3 (2021-07-26)

  • port custom "Bearer" bugfix/workaround to simplejwt #467
  • add setting for listing/paginating/filtering on non-2XX #402 #277
  • fix Typo [Eunsub LEE]
  • nit typofix [adamsteele-city]
  • Add a few return type annotations [Nikhil Benesch]
  • add django-filter queryset annotation and extend_schema_field support
  • account for functools.partial wrapped type hints #451
  • Update swagger_ui.js [Jordan Facibene]
  • Update customization.rst to fix example typo [Atsuo Shiraki]
  • update swagger-ui version
  • add oauth2 config for swagger ui #438

Breaking changes / important additions:

  • Just a few bugfixes and some small features with minimal impact on existing schema

0.17.2 (2021-06-15)

  • prevent endless loop in extensions when augmenting schema #426
  • bugfix secondary import cycle (generics.APIView) #430
  • fix: avoid circular import of/via rest_framework's APIView [Daniel Hahler]

Breaking changes / important additions:

  • Hotfix release that addresses a carelessly added import in 0.17.1. In certain use-cases, this may have led to an import cycle inside DRF.

0.17.1 (2021-06-12)

  • bugfix 201 response for (List)CreateAPIVIew #428
  • support paginated ListSerializer with field child #413
  • fix django-filter.BooleanFilter subclass issue #317
  • serializer field deprecation #415
  • improve extension documentation #426
  • improve type hints and fix mypy issues on tests.
  • add missing usage case to type hints #418
  • Typo(?) README fix [Jan Jurec]

Breaking changes / important additions:

  • This release is mainly for fixing incomplete type hints which mypy will potentially complain about.
  • A few small fixes that should either have no or a very small impact in schemas.

0.17.0 (2021-06-01)

  • improve type hint detection for Iterable and NamedTuple #404
  • bugfix ReadOnlyField when used as ListSerlializer child #404
  • improve component discard logic #395
  • allow disabling operation sorting for sorting in PREPROCESSIN_HOOKS #410
  • add regression test for #407
  • fix error on read-only serializer [Matthieu Treussart]
  • invert component exclusion logic (OpenApiSerializerExtension) #351 #391
  • add many=True support to PolymorphicProxySerializer #382
  • improve documentation, remove py2 wheel tag, mark as mypy-enabled
  • bugfix YAML serialization errors that are ok with JSON #388
  • bugfix missing auth extension for JWTTokenUserAuthentication #387
  • Rename MethodSerializerField -> SerializerMethodField in README [Christoph Krybus]

Breaking changes / important additions:

  • Quite a few small improvements. The biggest change is the inversion of the component discard logic. This should have no negative impact, but to be on the safe side we'll opt for a y-stream release.
  • The package is now marked as being typed, which should get picked up natively by mypy

0.16.0 (2021-05-10)

  • add redoc dist setting
  • bugfix mock request asymmetry #370 #250
  • refactor urlpattern simplification #373 #168
  • include relation PKs into SCHEMA_COERCE_PATH_PK handling #251
  • allow PolymorphicProxySerializer to be simple 'oneOf'
  • bugfix incorrect PolymorphicProxySerializer warning on extend_schema_field #263
  • add break-out option for SerializerFieldExtension
  • Modify urls for nested routers [Matthias Erll]

Breaking changes / important additions:

  • Revamped handling of mocked requests. Now GET_MOCK_REQUEST is always called, not just for offline schema generation. In case there is a real request available, we carry over headers and authetication. If you use your own implementation, you may want to inspect the new default implementation.
  • NamespaceVersioning: switched path variable substitution from regex to custom state machine due to parethesis counting issue.
  • Improved implicit support for drf-nested-routers
  • Added some convenience options for plain oneOf to PolymorphicProxySerializer
  • This release should have minimal impact on the generated schema. We opt for a y-stream release due to potentially breaking changes when a user-provided GET_MOCK_REQUEST is used.

0.15.1 (2021-04-08)

  • bugfix prefix estimation with RE special char literals in path #358

Breaking changes / important additions:

  • minor release to fix newly introduced default prefix estimation.

0.15.0 (2021-04-03)

  • fix boundaries for decimals coerced to strings #335
  • improve util type hints
  • add convenience response wrapper OpenApiResponse #345 #272 #116
  • adapt for dj-rest-auth upstream changes in iMerica/dj-rest-auth#227
  • Fixed traversing of 'Optional' type annotations [Luke Plant]
  • prevent pagination on error responses. #277
  • fix SCHEMA_PATH_PREFIX_TRIM ^/ pitfall & remove unused old URL mounting
  • slighly improve #332 for django-filter range filters
  • introduce non-redundant title field. #191 #286
  • improve schema version string handling including variations #303
  • bugfix ENUM_NAME_OVERRIDES for categorized choices #339
  • improve SCHEMA_PATH_PREFIX handling, add auto-detect default, introduce prefix trimming #336
  • add support for all django-filters RangeFilter [Jules Waldhart]
  • Added default value for missing attribute [Matthias Erll]
  • Fix map_renderers where format is None [Matthias Erll]

Breaking changes / important additions:

  • explicitly set responses via @extend_schema will not get paginated/listed anymore for non 2XX status codes.
  • New default None for SCHEMA_PATH_PREFIX will attempt to determine a reasonable prefix. Previous behavior is restored with ''
  • Added OpenApiResponses to gain access to response object descriptions.

0.14.0 (2021-03-09)

  • Fixed bug with cached_property non-Model objects not being traversed [Luke Plant]
  • Fixed issue #314 - include information about view/serializer in warnings. [Luke Plant]
  • bugfix forward/reverse model traversal #323
  • fix nested serializer detection & smarter metadata extraction #319
  • add drf-yasg compatibility feature 'swagger_fake_view' #321
  • fix django-filter through model edge case & catch exceptions #320
  • refactor/bugfix PATCH & Serializer(partial=True) behaviour.
  • bugfix django-filter custom filter class resolution #317
  • bugfix django-filter for Django 2.2 AutoField
  • improved/restructured resolution priority in django-filter extension #317 #234
  • handle Decimals for YAML #316
  • remove deprecated django-filter backend solution
  • update swagger-ui version
  • bugfix [] case and lint #312
  • discriminate None and typing.Any usage #315
  • fix multi-step source relation field resolution, again. #274 #296
  • Add any type for OpenApiTypes [André da Silva]
  • improve Extension usage documentation #307
  • restructure request body for extend_schema #266 #279
  • bugfix multipart boundary showing up in Accept header
  • bugfix: use get_parsers() and get_renderers() #266
  • Fix for better support of PEP 563 compatible annotations. [Luke Plant]
  • Add document authentication [gongul]
  • Do not override query params [Fabricio Aguiar]
  • New setting for enabling/disabling error/warn messages [Fabricio Aguiar]
  • bugfix response headers without body #297
  • issue #296 [Luis Saavedra]
  • Fixes #283 -- implement response header parameters [Sergei Maertens]
  • Added feature test for response headers [Sergei Maertens]
  • robustify django-filter enum sorting #295

Breaking changes / important additions:

  • drf-spectacular's custom DjangoFilterBackend removed after previous deprecation. Just use the original class again.
  • django-filter extension received a significant refactoring so your schema may have several changes, hopefully positive ones.
  • Added response headers feature
  • Extended @extend_schema(request=X), where X may now also be a Dict[content_type, serializer_etc]
  • Updated Swagger UI version
  • Fixed several model traveral issues that may lead to PK changes in the schema
  • Added drf-yasg's swagger_fake_view

0.13.2 (2021-02-11)

  • add setting for operation parameter sorting #281
  • bugfix/generalize Union hint extraction #284
  • bugfix functools.partial methods in django-filters #290
  • bugfix django-filter method filter #290
  • Check serialzer help_text field is passed to the query description [Jorge Rodríguez-Flores Esparza]
  • QUERY Parameters from serializer ignore description in SwaggerUI [Jorge Rodríguez-Flores Esparza]
  • README.rst encoding change [gongul]
  • Add support for SCOPES_BACKEND_CLASS setting from django-oauth-toolkit [diesieben07]
  • use source instead of field_name for model field detection #274 [diesieben07]
  • bugfix parameter removal from custom AutoSchema #212
  • add specification extension option to info section #165
  • add default to OpenApiParameter #271
  • show violating view for easier fixing #278
  • fix readonly related fields generating incorrect schema #274 [diesieben07]
  • bugfix save parameter removal #212

0.13.1 (2021-01-21)

  • bugfix/handle more django-filter cases #263
  • bugfix missing meta on extend_serializer_field, raw schema, and breakout
  • expose explode and style for OpenApiParameter #267
  • Only generate mock request if there is no actual request [Matthias Erll]
  • Update blueprints.rst [takizuka]
  • bugfix enum substitution for enumed arrays (multiple choice)
  • Update README.rst [Chad Ramos]
  • Create new mock request on each operation [Matthias Erll]

0.13.0 (2021-01-13)

  • add setting for additionalProperties handling #238
  • bugfix path param extraction for PrimaryKeyRelatedField #258
  • use injected django-filter help_text #234
  • robustify normalization of tyes #257
  • bugfix PATCH split serializer disparity #249
  • django-filter description bugfix #234
  • bugfix unsupported http verbs #244
  • bugfix assert on methods in django-filter #252 #234 #241
  • Regression: Filterset defined as method (and from a @property) are not supported [Nicolas Delaby]
  • bugfix view-level AutoSchema noneffective with extend_schema #241
  • bugfix incorrect warning on paginated actions #233

Breaking changes:

  • several small improvements that should not have a big impact. this is a y-stream release mainly due to schema changes that may occur with django-filter.

0.12.0 (2020-12-19)

  • add exclusion for discovered parameters #212
  • bugfix incorrect collision warning #233
  • introduce filter extensions #234
  • revert Swagger UI view to single request and alternative #211 #173
  • bugfix Simple JWT token refresh #232
  • bugfix simple JWT serializer schema #232
  • Fix enum postprocessor to allow 0 as possible value [Vikas]
  • bugfix/restore optional default parameter value #226
  • Include QuerySerializer in documentation [KimSoungRyoul]
  • support OAS3.0 ExampleObject to @extend_schema & @extend_schema_serializer #115 [KimSoungRyoul]
  • add explicit double and int32 types. #214
  • added type extension for int64 format support [Peter Dreuw]
  • fix TokenAuthentication handling of keyword #205
  • Allow callable limit_value in schema [Serkan Hosca]
  • @extend_schema responses param now accepts tuples with media type #201
  • bugfix List hint extraction with non-basic sub types #207

Breaking changes:

  • reverted back to 0.10.0 Swagger UI behavior as default. Users relying on stricter CSP should use SpectacularSwaggerSplitView
  • tokenAuth slightly changed to properly model correct Authorization header
  • a lot of minor improvements that may slightly alter the schema

0.11.1 (2020-11-15)

  • bugfix hint extraction on @cached_property #198
  • add support for basic TypedDict hints #184
  • improve type hint resolution #199
  • add option to disable Null/Blank enum choice feature #185
  • bugfix return code for Viewset create methods #196
  • honor SCHEMA_COERCE_PATH_PK on path param type resolution #194
  • bugfix absolute schema URL to relative in UI #193

Breaking changes:

  • return code for create on ViewSet changed from 200 to 201. Some generator targets are picky, others don't care.

0.11.0 (2020-11-06)

  • Remove unnecessary view permission from action [Vikas]
  • Fix security definition for IsAuthenticatedOrReadOnly permission [Vikas]
  • introduce convenience decorator @schema_extend_view #182
  • bugfix override behaviour of extend_schema with methods and views
  • move some plumbing to drainage to make importable without cirular import issues
  • bugfix naming for ListSerializer with pagination #183
  • cleanup trailing whitespace in docstrings
  • normalize regex in pattern, remove ECMA-incompatible URL pattern #175
  • remove Swagger UI inline script for stricter CSP #173
  • fixed typo [Sebastian Pabst]
  • add the PASSWORD format to types.py [Sebastian Pabst]
  • docs(settings): fix favicon example [Max Wittig]

Breaking changes:

  • @extend_schema override mechanics are now consistent. may affect schema only if used on both view and view method
  • otherwise mainly small improvement/fixes that should have minimal impact on the schema.

0.10.0 (2020-10-20)

  • bugfix non-effective multi-usage of view extension.
  • improve resolvable enum collisions with split components
  • Update README.rst [Jose Luis da Cruz Junior]
  • fix regular expression in detype_pattern [Ruslan Ibragimov]
  • improve enum naming with resolvable collisions
  • improve handling of discouraged SECURITY setting (fixes #48 fixes #136)
  • instance check with ViewSetMixin instead of GenericViewSet [SoungRyoul Kim]
  • support swagger-ui-settings [SoungRyoul Kim]
  • Change Settings variable, allow override of default swagger settings and remove unnecessary line [Nix]
  • Fix whitspace issues in code [Nix]
  • Allow Swagger-UI configuration through settings Closes #162 [Nix]
  • extend django_filters test case #155
  • add enum postprocessing handling of blank and null #135
  • rest-auth improvements
  • test_rest_auth: Add test schema transforms [John Vandenberg]
  • tests: Allow transformers on expected schemas [John Vandenberg]
  • Improve schema difference test harness [John Vandenberg]
  • Add rest-auth tests [John Vandenberg]
  • contrib: Add rest-auth support [John Vandenberg]

Breaking changes:

  • enum naming collision resolution changed in cleanly resolvable situations.
  • enums gained null and blank cases, which are modeled through oneOf for deduplication
  • SECURITY setting is now additive instead of being the mostly overridden default

0.9.14 (2020-10-04)

  • improve client generation for paginated listings
  • update pinned swagger-ui version #160
  • Hot fix for AcceptVersioningHeader support [Nicolas Delaby]
  • bugfix module string includes with urlpatterns #157
  • add expressive error in case of misconfiguration #156
  • fix django-filter related resolution. improve test #150 #151
  • improve follow_field_source for reverse resolution and model leafs #150
  • add ref if list field child is serializer [Matt Shirley]
  • add customization option for mock request generation #135

Breaking changes:

  • paginated list response is now wrapped in its own component

0.9.13 (2020-09-13)

  • bugfix filter parameter application on non-list views #147
  • improved support for django-filter
  • add mocked request for view processing. #81 #141
  • Use sha256 to hash lists [David Davis]
  • change empty operation name on API prefix-cut to "root"
  • bugfix lost "missing hint" warning and incorrect empty fallback
  • add operationId collision resolution #137
  • bugfix leaking path var names in operationId #137
  • add config for camelizing names #138
  • bugfix parameterized patterns for namespace versioning #145
  • Add support for Accept header versioning [Krzysztof Socha]
  • support for DictField child type (#142) and models.JSONField (Django>=3.1)
  • add convenience inline_serializer for extend_schema #139
  • remove multipleOf due to schema violation #131

Breaking changes:

  • operationId changed for endpoints using the DRF's FORMAT path feature.
  • operationId changed where there were path variables leaking into the name.

0.9.12 (2020-07-22)

  • Temporarily pin the swagger-ui unpkg URL to 3.30.0 [Mohamed Abdulaziz]
  • Add deepLinking parameter [p.alekseev]
  • added preprocessing hooks for operation list modification/filtering #93
  • Document effective DRF settings [John Vandenberg]
  • add format query parameter #110
  • improve assert messages #126
  • more graceful handling of magic fields #126
  • allow for field child on ListSerializer. #120
  • Fix sorting of endpoints with params [John Vandenberg]
  • Emit enum of possible format suffixes [John Vandenberg]
  • i18n #109
  • bugfix INSTALLED_APP retrieval #114
  • emit import warning for extensions with installed apps #114

Breaking changes:

  • drf_spectacular.hooks.postprocess_schema_enums moved from blumbing to hooks for consistency. Only relevant if POSTPROCESSING_HOOKS is explicitly set by user.
  • preprocessing hooks are currently experimental and may change on the next release.

0.9.11 (2020-07-08)

  • extend instead of replace extra parameters #111
  • add client generator helper settings for readOnly
  • bugfix format param: path params must be required=True
  • bugfix DRF docstring excludes and configuration #107
  • bugfix operations with urlpattern override #92
  • decrease built-in extension priority and improve doc #106
  • add option to hide serializer fields #100
  • allow None on @extend_schema request/response
  • bugfix json spec violation on "required :[]" for COMPONENT_SPLIT_REQUEST

Breaking changes:

  • @extend_schema(parameters=...) is extending instead of replacing for custom AutoSchema
  • path parameter are now always required=True as required by specification

0.9.10 (2020-06-23)

  • bugfix cyclic import in plumbing. #104
  • add upstream test target with contrib allowed to fail
  • preparations for django 3.1 and DRF 3.12
  • improve tox targets for unreleased upstream

0.9.9 (2020-06-20)

  • added explicit URL option to UI views. #103
  • improve auth extension doc #99
  • bugfix attr typo with Token auth extension #99
  • improve docstring extraction #96
  • Manual polymorphic [Jair Henrique]
  • Add summary field to extend_schema #97 [lilisha100]
  • reduce minimal package requirements
  • extend sdist with tests & doc
  • bugfix nested RO/WO serializer on COMPONENT_SPLIT_REQUEST
  • add pytest option --skip-missing-contrib #87
  • Save test files in temporary folder [Jair Henrique]
  • Setup isort library [Jair Henrique]

0.9.8 (2020-06-07)

  • bugfix read-only many2many relation processing #79
  • Implement OrderedDict representer for yaml dumper [Jair Henrique]
  • bugfix UI permissions #84
  • fix abc import #82
  • add duration field #78

0.9.7 (2020-06-05)

  • put contrib code in packages named files
  • improve djangorestframework-camel-case support #73
  • Add support to djangorestframework-camel-case [Jair Henrique]
  • ENUM_NAME_OVERRIDES accepts import string for easier handling #70
  • honor versioning on schema UIs #71
  • improve enum naming mechanism. #63 #70
  • provide global enum naming. #70
  • refactor choice field
  • remove unused sorter setting
  • improve FileField, add test and documentation. #69
  • Fix file fields [John Vandenberg]
  • allow for functions on models beside properties. #68
  • replace removed DRF compat function

Breaking changes:

  • Enum naming conflicts are now resolved explicitly. how to resolve conflicts
  • Choice fields may be rendered slightly different
  • Swagger UI and Redoc views now honor versioned requests
  • Contrib package code moved. each package has its own file now

0.9.6 (2020-05-23)

  • overhaul documentation #52
  • improve serializer field mapping (nullbool & time)
  • remove duplicate and misplaced description. #61
  • extract serializer docstring
  • Recognise ListModelMixin as a list [John Vandenberg]
  • bugfix component sorting to include enums. #60
  • bugfix fail on missing readOnly flag
  • Fix incorrect parameter cutting [p.alekseev]

0.9.5 (2020-05-20)

  • add optional serializer component split
  • improve SerializerField meta extraction
  • improve serializer directionality
  • add mypy static analysis
  • make all readonly fields required for output. #54
  • make yaml multi-line strings nicer
  • alphanumeric component sorting.
  • generalize postprocessing hooks
  • extension override through priority attr

Breaking changes:

  • Schemas are funtionally identical, but component sorting changed slightly.
  • All read_only fields are required by default
  • SerializerFieldExtension gained direction parameter

0.9.4 (2020-05-13)

  • robustify serializer resolution & enum postprocessing
  • expose api_version to command. robustify version matching. #22
  • add versioning support #22
  • robustify urlconf wrapping. resolver does not like lists
  • explicit override for non-list serializers on ViewSet list #49
  • improve model field mapping via DRF init logic
  • bugfix enum substitution with additional field parameters.
  • Fix getting default parameter for MultipleChoiceField [p.alekseev]
  • bugfix model path traversal via intermediate property
  • try to be more graceful with unknown custom model fields. #33

Breaking changes:

  • If URL or namespace versioning is set in views, it is automatically used for generation. Schemas might shrink because of that. Explicit usage of --api-version="XXX" should yield the old result.
  • Some warnings might change, as the field/view introspection tries to go deeper.

0.9.3 (2020-05-07)

  • Add (partial) support for drf-yasg's serializer ref_name #27
  • Add thin wrappers for redoc and swagger-ui. #19
  • Simplify serializer naming override #27
  • Handle drf type error for yaml. #41
  • Tox.ini: Add {posargs} [John Vandenberg]
  • add djangorestframework-jwt auth handler [John Vandenberg]
  • Docs: example of a manual configuration to use a apiKey in securitySchemes [Jelmer Draaijer]
  • Introduce view override extension
  • Consolidate extensions
  • Parse path parameter type hints from url. closes #34
  • Consolidate duplicate warnings/add error #28
  • Prevent warning for DRF format suffix param
  • Improve ACCEPT header handling #42

Breaking changes:

  • all extension base classes moved to drf_spectacular.extensions

0.9.2 (2020-04-27)

  • Fix incorrect PK access through id. #25.
  • Enable attr settings on SpectacularAPIView #35.
  • Bugfix @api_view annotation and tests.
  • Fix exception/add support for explicit ListSerializer #29.
  • Introduce custom serializer field extension mechanic. enables tackling #31
  • Improve serializer estimation with educated guesses. #28.
  • Bugfix import error and incorrect warning #26.
  • Improve scope parsing for oauth2. #26.
  • Postprocessing enums to components
  • Handle decimal coersion. closes #24.
  • Improvement: patched serializer variation only on request.
  • Add serializer directionality.
  • End the bucket brigade / cleaner interface.
  • Add poly serializer warning.
  • Bugfix: add serialization for default values.
  • Bugfix reverse access collision from schema to view.

Breaking changes:

  • internal interface changed (method & path removed)
  • fewer PatchedSerializers emitted
  • Enums are no longer inlined

0.9.1 (2020-04-09)

  • Bugfix missing openapi schema spec json in package
  • Add multi-method action decoration support.
  • rest-polymorphic str loading prep.
  • Improve list view detection.
  • Bugfix: response codes must be string. closes #17.

0.9.0 (2020-03-29)

  • Add missing related serializer fields #15.
  • Bugfix properties with $ref component. closes #16.
  • Bugfix polymorphic resource_type lookup. closes #14.
  • Generalize plugin system.
  • Support required parameter for body. [p.alekseev]
  • Improve serializer retrieval.
  • Add query serializer support #10.
  • Custom serializer parsing with plugins.
  • Refactor auth plugin system. support for DjangoOAuthToolkit & SimpleJWT.
  • Bugfix extra components.

Breaking changes:

  • removed to_schema() from OpenApiParameter. Handled in AutoSchema now.

0.8.8 (2020-03-21)

  • Documentation.
  • Schema serving with SpectacularAPIView (configureable)
  • Add generator stats and --fail-on-warn command option.
  • Schema validation with --validation against OpenAPI JSON specification
  • Added various settings.
  • Bugfix/add support for basic type responses (parity with requests)
  • Bugfix required in parameters. failed schema validation.
  • Add validation against OpenAPI schema specification.
  • Improve parameter resolution, warnings and tests.
  • Allow default parameter override. (e.g. id)
  • Fix queryset function call. [p.g.alekseev]
  • Supporting enum values in params. [p.g.alekseev]
  • Allow @extend_schema request basic type annotation.
  • Add support for typing Optional[*]
  • Bugfix: handle proxy models where pk is a OnetoOne relation.
  • Warn on duplicate serializer names.
  • Added explicit exclude flag for operation.
  • Bugfix: PrimaryKeyRelatedField(read_only=True) failing to find type.
  • Change operation sorting to alphanumeric with option (#6)
  • Robustify serializer field support for @extend_schema_field.
  • Enable field serializers support. [p.g.alekseev]
  • Adding custom tags support [p.g.alekseev]
  • Document extend_schema.
  • Allow operation hiding.
  • Catch unknown model traversals. custom fields can be tricky.
  • Improve model field mapping. extend field tests.
  • Add deprecated method to extend_schema decorator. [p.g.alekseev]

Breaking changes:

  • @extend_schema renamed extra_parameters -> parameters
  • ExtraParameter renamed to OpenApiParameter

0.8.5 (2020-03-08)

  • Generalize PolymorphicResponse into PolymorphicProxySerializer.
  • Type dict is resolved as object.
  • Simplify hint resolution.
  • Allow @extend_schema_field for custom serializer fields.

0.8.4 (2020-03-06)

  • @extend_schema_field accepts Serializers and OpenApiTypes
  • Generalize query parameter.
  • Bugfix serializer init.
  • Fix unused get_request_serializer.
  • Refactor and robustify typing system.
  • Helper scripts for swagger and generator.
  • Fix license.

0.8.3 (2020-03-02)

  • Fix parameter type resolution.
  • Remove empty parameters.
  • Improved assert message.

0.8.2 (2020-03-02)

  • Working release.
  • Bugfix wrong call & remove yaml aliases.

0.8.1 (2020-03-01)

  • Initial published version.