######### Changelog ######### ********** **1.12.0** ********** *Release date: Dec 23, 2018* - **ADDED:** ``get_security_definitions`` and ``get_security_requirements`` hooks to ``OpenAPISchemaGenerator`` - **ADDED:** added ``get_summary_and_description`` and ``split_summary_from_description`` extension points to ``SwaggerAutoSchema`` to allow for better customisation - **IMPROVED:** updated ``swagger-ui`` to version 3.20.4 - **IMPROVED:** paginator ``next`` and ``previous`` fields are now marked as ``x-nullable`` (:issue:`263`) - **IMPROVED:** added the ``tags`` argument to ``swagger_auto_schema`` (:pr:`259`) - **IMPROVED:** type of ``enum`` will now be automatically detected from ``ChoiceField`` if all ``choices`` values are objects of the same Python class (:pr:`264`) - **IMPROVED:** ``SwaggerValidationError`` details will now be logged and shown in the exception message - **FIXED:** user implementations of ``get_queryset``, ``get_parsers`` and ``get_renderers`` will no longer be bypassed - **FIXED:** fixed handling of lazy objects in user-supplied values - **FIXED:** ``read_only`` serializer fields will be correctly ignored when generating form parameters (:issue:`261`) - **FIXED:** fixed incorrect return type from ``UIRenderer`` (:pr:`268`) - **FIXED:** fixed incosistent ordering of global ``securityDefinitions`` and ``security`` objects - **DEPRECATED:** the ``get_summary`` and ``get_description`` extension points have been deprecated in favor of the new ``get_summary_and_description``, and will be removed in a future release **IMPORTANT PACKAGING NOTE** Starting with this version, the ``setup_requires`` argument was dropped from ``setup.py`` in favor of ``build-system.requires`` in ``pyproject.toml`` . This means that for correctly building or installing from sdist, you will need to use a PEP517/PEP518 compliant tool (tox>=3.3.0, setuptools>=40, pip>=10.0, pep517.build) or manually install the build requirements yourself (just ``setuptools`` and ``setuptools-scm``, for now). Additionally, for correct package version detection, a full git checkout is required when building (this was always the case). Building without ``.git`` or without ``setuptools-scm`` will result in a distribution with a version like ``drf-yasg-1!0.0.0.dev0+noscm.00000167d19bd859``. ********** **1.11.1** ********** *Release date: Nov 29, 2018* - **IMPROVED:** updated ``swagger-ui`` to version 3.20.1 - **IMPROVED:** updated ``ReDoc`` to version 2.0.0-alpha.41 - **FIXED:** ``minLength`` and ``maxLength`` will now also work for ``ListSerializer`` in addition to ``ListField`` - **FIXED:** ``MultipleChoiceField`` will now use the ``multi`` ``collectionFormat`` where appropriate (:issue:`257`) - **FIXED:** the ``format``, ``pattern``, ``enum``, ``min_length`` and ``max_length`` attributes of ``coreschema.Schema`` will now be persited into the converted ``openapi.Parameter`` (:issue:`212`, :pr:`233`) ********** **1.11.0** ********** *Release date: Oct 14, 2018* - **ADDED:** ``PERSIST_AUTH``, ``REFETCH_SCHEMA_WITH_AUTH``, ``REFETCH_SCHEMA_ON_LOGOUT`` settings and related javascript implementation for persisting authentication data to swagger-ui localStorage - **IMPROVED:** UI-enabled views will now no longer generate the full specification document twice; the HTML part of the view will only generate a barebones ``Swagger`` object with no ``paths`` and ``definitions`` - **IMPROVED:** added the ``FETCH_SCHEMA_WITH_QUERY`` setting to enable fetching of the schema document using query parameters passed to the UI view (:issue:`208`) - **IMPROVED:** added support for the very common ``x-nullable`` extension (:issue:`217`) - **IMPROVED:** extensibility of some classes was improved by adding more extension points, together with more blocks for ``swagger-ui.html``/``redoc.html`` and some JavaScript hooks in ``swagger-ui-init.js`` - **FIXED:** removed usage of ``inspect.signature`` on python 2.7 (:issue:`222`) ********** **1.10.2** ********** *Release date: Sep 13, 2018* - **ADDED:** added the ``DISPLAY_OPERATION_ID`` ``swagger-ui`` setting - **IMPROVED:** updated ``ReDoc`` to version 2.0.0-alpha.38 - **IMPROVED:** Operation summary will now be parsed from multi-line view method docstrings (:issue:`205`) - **IMPROVED:** ``pattern`` will now work on any field with a ``RegexValidator`` (would previously not appear on fields with special formats such as ``EmailField``) - **FIXED:** fixed an issue with ``RelatedFieldInspector`` handling of nested serializers - **FIXED:** fixed handling of ``reverse_lazy`` in URL settings (:issue:`209`) ********** **1.10.1** ********** *Release date: Sep 10, 2018* - **ADDED:** added the ``SPEC_URL`` setting for controlling the download link in ``swagger-ui`` and ``ReDoc`` - **ADDED:** updated ``ReDoc`` settings (added ``NATIVE_SCROLLBARS`` and ``REQUIRED_PROPS_FIRST``) - **ADDED:** added ``extra_styles`` and ``extra_scripts`` blocks to ui templates (:issue:`178`) - **IMPROVED:** updated ``swagger-ui`` to version 3.18.2 - **IMPROVED:** updated ``ReDoc`` to version 2.0.0-alpha.37 - **FIXED:** stopped generating invalid OpenAPI by improper placement of ``readOnly`` Schemas - **FIXED:** fixed broken CSS when ``USE_SESSION_AUTH=False`` - **FIXED:** fixed implementation of ``operation_summary`` and ``deprecated`` (:pr:`194`, :pr:`198`) - **FIXED:** fixed a bug related to nested ``typing`` hints (:pr:`195`) - **FIXED:** removed dependency on ``future`` (:issue:`196`) - **FIXED:** fixed exceptions logged for fields with ``default=None`` (:issue:`203`) - **FIXED:** fixed ``request_body=no_body`` handling and related tests (:issue:`188`, :issue:`199`) ********** **1.10.0** ********** *Release date: Aug 08, 2018* - **ADDED:** added ``EXCLUDED_MEDIA_TYPES`` setting for controlling ``produces`` MIME type filtering (:issue:`158`) - **ADDED:** added support for ``SerializerMethodField``, via the ``swagger_serializer_method`` decorator for the method field, and support for Python 3.5 style type hinting of the method field return type (:issue:`137`, :pr:`175`, :pr:`179`) *NOTE:* in order for this to work, you will have to add the new ``drf_yasg.inspectors.SerializerMethodFieldInspector`` to your ``DEFAULT_FIELD_INSPECTORS`` array if you changed it from the default value - **IMPROVED:** updated ``swagger-ui`` to version 3.18.0 - **IMPROVED:** added support for Python 3.7 and Django 2.1 (:pr:`176`) - **IMPROVED:** ``swagger_schema_fields`` will now also work on serializer ``Field``\ s (:issue:`167`) - **IMPROVED:** ``ref_name`` collisions will now log a warning message (:issue:`156`) - **IMPROVED:** added ``operation_summary`` and ``deprecated`` arguments to ``swagger_auto_schema`` (:issue:`149`, :issue:`173`) - **FIXED:** made ``swagger_auto_schema`` work with DRF 3.9 ``@action`` mappings (:issue:`177`) ********* **1.9.2** ********* *Release date: Aug 03, 2018* - **IMPROVED:** updated ``swagger-ui`` to version 3.17.6 - **IMPROVED:** updated ``ReDoc`` to version 2.0.0-alpha.32 - **IMPROVED:** added ``--api-version`` argument to the ``generate_swagger`` management command (:pr:`170`) - **FIXED:** corrected various documentation typos (:pr:`160`, :pr:`162`, :issue:`171`, :pr:`172`) - **FIXED:** made ``generate_swagger`` work for projects without authentication (:pr:`161`) - **FIXED:** fixed ``SafeText`` interaction with YAML codec (:issue:`159`) ********* **1.9.1** ********* *Release date: Jun 30, 2018* - **IMPROVED:** added a ``swagger_fake_view`` marker to more easily detect mock views in view methods; ``getattr(self, 'swagger_fake_view', False)`` inside a view method like ``get_serializer_class`` will tell you if the view instance is being used for swagger schema introspection (:issue:`154`) - **IMPROVED:** updated ``swagger-ui`` to version 3.17.1 - **IMPROVED:** updated ``ReDoc`` to version 2.0.0-alpha.25 - **FIXED:** fixed wrong handling of duplicate urls in urlconf (:pr:`155`) - **FIXED:** fixed crash when passing ``None`` as a response override (:issue:`148`) ********* **1.9.0** ********* *Release date: Jun 16, 2018* - **ADDED:** added ``DEFAULT_GENERATOR_CLASS`` setting and ``--generator-class`` argument to the ``generate_swagger`` management command (:issue:`140`) - **FIXED:** fixed wrongly required ``'count'`` response field on ``CursorPagination`` (:issue:`141`) - **FIXED:** fixed some cases where ``swagger_schema_fields`` would not be handlded (:pr:`142`) - **FIXED:** fixed crash when encountering ``coreapi.Fields``\ s without a ``schema`` (:issue:`143`) ********* **1.8.0** ********* *Release date: Jun 01, 2018* - **ADDED:** added a :ref:`swagger_schema_fields ` field on serializer ``Meta`` classes for customizing schema generation (:issue:`132`, :pr:`134`) - **FIXED:** error responses from schema views are now rendered with ``JSONRenderer`` instead of throwing confusing errors (:pr:`130`, :issue:`58`) - **FIXED:** ``readOnly`` schema fields will now no longer be marked as ``required`` (:pr:`133`) ********* **1.7.4** ********* *Release date: May 14, 2018* - **IMPROVED:** updated ``swagger-ui`` to version 3.14.2 - **IMPROVED:** updated ``ReDoc`` to version 2.0.0-alpha.20 - **FIXED:** ignore ``None`` return from ``get_operation`` to avoid empty ``Path`` objects in output - **FIXED:** request body is now allowed on ``DELETE`` endpoints (:issue:`118`) ********* **1.7.3** ********* *Release date: May 12, 2018* - **FIXED:** views whose ``__init__`` methods throw exceptions will now be ignored during endpoint enumeration ********* **1.7.2** ********* *Release date: May 12, 2018* - **FIXED:** fixed generation of default ``SECURITY_REQUIREMENTS`` to match documented behaviour - **FIXED:** ordering of ``SECURITY_REQUIREMENTS`` and ``SECURITY_DEFINITIONS`` is now stable ********* **1.7.1** ********* *Release date: May 05, 2018* - **IMPROVED:** updated ``swagger-ui`` to version 3.14.1 - **IMPROVED:** set ``swagger-ui`` ``showCommonExtensions`` to ``True`` by default and add ``SHOW_COMMON_EXTENSIONS`` setting key - **IMPROVED:** set ``min_length=1`` when ``allow_blank=False`` (:pr:`112`, thanks to :ghuser:`elnappo`) - **FIXED:** made documentation ordering of ``SwaggerDict`` extra attributes stable ********* **1.7.0** ********* *Release date: Apr 27, 2018* - **ADDED:** added integration with `djangorestframework-recursive `_ (:issue:`109`, :pr:`110`, thanks to :ghuser:`rsichny`) *NOTE:* in order for this to work, you will have to add the new ``drf_yasg.inspectors.RecursiveFieldInspector`` to your ``DEFAULT_FIELD_INSPECTORS`` array if you changed it from the default value - **FIXED:** ``SchemaRef`` now supports cyclical references via the ``ignore_unresolved`` argument ********* **1.6.2** ********* *Release date: Apr 25, 2018* - **IMPROVED:** updated ``swagger-ui`` to version 3.13.6 - **IMPROVED:** switched ``ReDoc`` to version 2.0.0-alpha.17 (was 1.21.2); fixes :issue:`107` - **FIXED:** made documentation ordering of parameters stable for urls with multiple parameters (:issue:`105`, :pr:`106`) - **FIXED:** fixed crash when using a model ``ChoiceField`` of unknown child type ********* **1.6.1** ********* *Release date: Apr 01, 2018* - **ADDED:** added ``SUPPORTED_SUBMIT_METHODS`` ``swagger-ui`` setting ********* **1.6.0** ********* *Release date: Mar 24, 2018* - **IMPROVED:** ``OAUTH2_REDIRECT_URL`` will now default to the built in ``oauth2-redirect.html`` file ********* **1.5.1** ********* *Release date: Mar 18, 2018* - **IMPROVED:** updated ``swagger-ui`` to version 3.13.0 - **FIXED:** fixed a crash caused by ``serializers.OneToOneRel`` (:pr:`81`, thanks to :ghuser:`ko-pp`) ********* **1.5.0** ********* *Release date: Mar 12, 2018* - **IMPROVED:** ``serializers.HiddenField`` are now hidden (:issue:`78`, :pr:`79`, thanks to :ghuser:`therefromhere`) *NOTE:* in order for this to work, you will have to add the new ``drf_yasg.inspectors.HiddenFieldInspector`` to your ``DEFAULT_FIELD_INSPECTORS`` array if you changed it from the default value - **IMPROVED:** type of model field is now detected for ``serializers.SlugRelatedField`` with ``read_only=True`` (:issue:`82`, :pr:`83`, thanks to :ghuser:`therefromhere`) ********* **1.4.7** ********* *Release date: Mar 05, 2018* - **FIXED:** prevent crashes caused by attempting to delete object attributes which do not exist in the first place (:issue:`76`) ********* **1.4.6** ********* *Release date: Mar 05, 2018* - **IMPROVED:** updated ``swagger-ui`` to version 3.12.0 - **IMPROVED:** updated ``ReDoc`` to version 1.21.2 ********* **1.4.5** ********* *Release date: Mar 05, 2018* - **FIXED:** fixed an issue with modification of ``swagger_auto_schema`` arguments in-place during introspection, which would sometimes cause an incomplete Swagger document to be generated after the first pass (:issue:`74`, :pr:`75`) ********* **1.4.4** ********* *Release date: Feb 26, 2018* - **IMPROVED:** ``type`` for ``ChoiceField`` generated by a ``ModelSerializer`` from a model field with ``choices=...`` will now be set according to the associated model field (:issue:`69`) - **FIXED:** ``lookup_field`` and ``lookup_value_regex`` on the same ``ViewSet`` will no longer trigger an exception (:issue:`68`) ********* **1.4.3** ********* *Release date: Feb 22, 2018* - **FIXED:** added a missing assignment that would cause the ``default`` argument to ``openapi.Parameter.__init__`` to be ignored ********* **1.4.2** ********* *Release date: Feb 22, 2018* - **FIXED:** fixed a bug that causes a ``ModelViewSet`` generated from models with nested ``ForeignKey`` to output models named ``Nested`` into the ``definitions`` section (:issue:`59`, :pr:`65`) - **FIXED:** ``Response`` objects without a ``schema`` are now properly handled when passed through ``swagger_auto_schema`` (:issue:`66`) ********* **1.4.1** ********* *Release date: Feb 21, 2018* - **FIXED:** the ``coerce_to_string`` is now respected when setting the type, default value and min/max values of ``DecimalField`` in the OpenAPI schema (:issue:`62`) - **FIXED:** error responses from web UI views are now rendered with ``TemplateHTMLRenderer`` instead of throwing confusing errors (:issue:`58`) - **IMPROVED:** updated ``swagger-ui`` to version 3.10.0 - **IMPROVED:** updated ``ReDoc`` to version 1.21.0 ********* **1.4.0** ********* *Release date: Feb 04, 2018* - **ADDED:** added settings for OAuth2 client configuration in ``swagger-ui`` (:issue:`53`) - **IMPROVED:** updated ``swagger-ui`` to version 3.9.3 ********* **1.3.1** ********* *Release date: Jan 24, 2018* - **FIXED:** fixed a bug that would sometimes cause endpoints to wrongly be output as form operations (:issue:`50`) - **IMPROVED:** added generation of ``produces`` based on renderer classes - **IMPROVED:** added generation of top-level ``consumes`` and ``produces`` based on ``DEFAULT_PARSER_CLASSES`` and ``DEFAULT_RENDERER_CLASSES`` (:issue:`48`) ********* **1.3.0** ********* *Release date: Jan 23, 2018* - **ADDED:** security requirements are now correctly set and can be customized; this should fix problems related to authentication in ``swagger-ui`` Try it out! (:issue:`50`, :pr:`54`) - **IMPROVED:** updated ``swagger-ui`` to version 3.9.2 - **IMPROVED:** updated ``ReDoc`` to version 1.20.0 - **FIXED:** fixed an exception caused by a warning in get_path_from_regex (:pr:`49`, thanks to :ghuser:`blueyed`) ********* **1.2.2** ********* *Release date: Jan 12, 2018* - **FIXED:** djangorestframework>=3.7.7 is now required because of breaking changes (:issue:`44`, :pr:`45`, thanks to :ghuser:`h-hirokawa`) ********* **1.2.1** ********* *Release date: Jan 12, 2018* - Fixed deployment issues ********* **1.2.0** ********* *Release date: Jan 12, 2018 (missing from PyPI due to deployment issues)* - **ADDED:** ``basePath`` is now generated by taking into account the ``SCRIPT_NAME`` variable and the longest common prefix of API urls (:issue:`37`, :pr:`42`) - **IMPROVED:** removed inline scripts and styles from bundled HTML templates to increase CSP compatibility - **IMPROVED:** improved validation errors and added more assertion sanity checks (:issue:`37`, :issue:`40`) - **IMPROVED:** improved handling of NamespaceVersioning by excluding endpoints of differing versions (i.e. when accesing the schema view for v1, v2 endpoints will not be included in swagger) ********* **1.1.3** ********* *Release date: Jan 02, 2018* - **FIXED:** schema view cache will now always ``Vary`` on the ``Cookie`` and ``Authentication`` (the ``Vary`` header was previously only added if ``public`` was set to ``True``) - this fixes issues related to Django authentication in ``swagger-ui`` and ``CurrentUserDefault`` values in the schema ********* **1.1.2** ********* *Release date: Jan 01, 2018* - **IMPROVED:** updated ``swagger-ui`` to version 3.8.1 - **IMPROVED:** removed some unneeded static files ********* **1.1.1** ********* *Release date: Dec 27, 2017* - **ADDED:** :ref:`generate_swagger management command ` (:issue:`29`, :pr:`31`, thanks to :ghuser:`beaugunderson`) - **FIXED:** fixed improper generation of ``\Z`` regex tokens - will now be repalced by ``$`` ********* **1.1.0** ********* *Release date: Dec 27, 2017* - **ADDED:** added support for APIs versioned with ``URLPathVersioning`` or ``NamespaceVersioning`` - **ADDED:** added ability to recursively customize schema generation :ref:`using pluggable inspector classes ` - **ADDED:** added ``operation_id`` parameter to :func:`@swagger_auto_schema <.swagger_auto_schema>` - **ADDED:** integration with `djangorestframework-camel-case `_ (:issue:`28`) - **IMPROVED:** strings, arrays and integers will now have min/max validation attributes inferred from the field-level validators - **FIXED:** fixed a bug that caused ``title`` to never be generated for Schemas; ``title`` is now correctly populated from the field's ``label`` property ********* **1.0.6** ********* *Release date: Dec 23, 2017* - **FIXED:** Swagger UI "Try it out!" should now work with Django login - **FIXED:** callable ``default`` values on serializer fields will now be properly called (:pr:`24`, :issue:`25`) - **IMPROVED:** updated ``swagger-ui`` to version 3.8.0 - **IMPROVED:** ``PrimaryKeyRelatedField`` and ``SlugRelatedField`` will now have appropriate types based on the related model (:pr:`26`) - **IMPROVED:** mock views will now have a bound request even with ``public=False`` (:pr:`23`) ********* **1.0.5** ********* *Release date: Dec 18, 2017* - **FIXED:** fixed a crash caused by having read-only Serializers nested by reference - **FIXED:** removed erroneous backslashes in paths when routes are generated using Django 2 `path() `_ - **IMPROVED:** updated ``swagger-ui`` to version 3.7.0 - **IMPROVED:** ``FileField`` is now generated as an URL or file name in response Schemas (:pr:`21`, thanks to :ghuser:`h-hirokawa`) ********* **1.0.4** ********* *Release date: Dec 16, 2017* - **FIXED:** fixed improper generation of YAML references - **ADDED:** added ``query_serializer`` parameter to :func:`@swagger_auto_schema <.swagger_auto_schema>` (:issue:`16`, :pr:`17`) ********* **1.0.3** ********* *Release date: Dec 15, 2017* - **FIXED:** fixed bug that caused schema views returned from cache to fail (:issue:`14`) - **FIXED:** disabled automatic generation of response schemas for form operations to avoid confusing errors caused by attempting to shove file parameters into Schema objects ********* **1.0.2** ********* *Release date: Dec 13, 2017* - First published version