Changelog

1.15.1

Release date: Jun 13, 2019

  • IMPROVED: updated swagger-ui to version 3.22.3
  • IMPROVED: updated ReDoc to version 2.0.0-rc.8-1
  • FIXED: fixed an issue with inspection of typing hints on Python 2.7 (#363)
  • FIXED: fixed an issue with inspection of typing hints on Python 3.7 (#371)

Python 3.4 support has been dropped!

1.15.0

Release date: Apr 01, 2019

  • ADDED: added is_list_view and has_list_response extension points to SwaggerAutoSchema (#331)
  • IMPROVED: updated swagger-ui to version 3.22.0
  • IMPROVED: updated ReDoc to version 2.0.0-rc.4
  • FIXED: ListModelMixin will now always be treated as a list view (#306)
  • FIXED: non-primtive values in field choices will now be handled properly (#340)

1.14.0

Release date: Mar 04, 2019

  • IMPROVED: updated swagger-ui to version 3.21.0
  • FIXED: implicit ref_name collisions will now throw an exception
  • FIXED: RecursiveField will now also work as a child of ListSerializer (#321)
  • FIXED: fixed minLength and maxLength for ListSerializer and ListField
  • FIXED: the items property of Schema, Parameter and Items objects was renamed to items_; this is a mildly breaking change and was needed to fix the collision with the items method of dict (#308)
  • REMOVED: the get_summary and get_description methods have been removed (previously deprecated in 1.12.0)

1.13.0

Release date: Jan 29, 2019

  • IMPROVED: type hint inspection is now supported for collections and Optional (#272)
  • IMPROVED: updated swagger-ui to version 3.20.5
  • IMPROVED: updated ReDoc to version 2.0.0-rc.2
  • DEPRECATED: quietly dropped support for the flex validator; it will still work if the library is installed, but the setup.py requirement was removed and the validator will be silently skipped if not installed (#285)

1.12.1

Release date: Dec 28, 2018

  • IMPROVED: updated ReDoc to version 2.0.0-rc.0
  • FIXED: management command will now correctly fall back to DEFAULT_VERSION for mock request
  • FIXED: fixed bad “raised exception during schema generation” warnings caused by missing self parameter

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 (#263)
  • IMPROVED: added the tags argument to swagger_auto_schema (#259)
  • IMPROVED: type of enum will now be automatically detected from ChoiceField if all choices values are objects of the same Python class (#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 (#261)
  • FIXED: fixed incorrect return type from UIRenderer (#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 (#257)
  • FIXED: the format, pattern, enum, min_length and max_length attributes of coreschema.Schema will now be persited into the converted openapi.Parameter (#212, #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 (#208)
  • IMPROVED: added support for the very common x-nullable extension (#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 (#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 (#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 (#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 (#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 (#194, #198)
  • FIXED: fixed a bug related to nested typing hints (#195)
  • FIXED: removed dependency on future (#196)
  • FIXED: fixed exceptions logged for fields with default=None (#203)
  • FIXED: fixed request_body=no_body handling and related tests (#188, #199)

1.10.0

Release date: Aug 08, 2018

  • ADDED: added EXCLUDED_MEDIA_TYPES setting for controlling produces MIME type filtering (#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 (#137, #175, #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 (#176)

  • IMPROVED: swagger_schema_fields will now also work on serializer Fields (#167)

  • IMPROVED: ref_name collisions will now log a warning message (#156)

  • IMPROVED: added operation_summary and deprecated arguments to swagger_auto_schema (#149, #173)

  • FIXED: made swagger_auto_schema work with DRF 3.9 @action mappings (#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 (#170)
  • FIXED: corrected various documentation typos (#160, #162, #171, #172)
  • FIXED: made generate_swagger work for projects without authentication (#161)
  • FIXED: fixed SafeText interaction with YAML codec (#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 (#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 (#155)
  • FIXED: fixed crash when passing None as a response override (#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 (#140)
  • FIXED: fixed wrongly required 'count' response field on CursorPagination (#141)
  • FIXED: fixed some cases where swagger_schema_fields would not be handlded (#142)
  • FIXED: fixed crash when encountering coreapi.Fieldss without a schema (#143)

1.8.0

Release date: Jun 01, 2018

  • ADDED: added a swagger_schema_fields field on serializer Meta classes for customizing schema generation (#132, #134)
  • FIXED: error responses from schema views are now rendered with JSONRenderer instead of throwing confusing errors (#130, #58)
  • FIXED: readOnly schema fields will now no longer be marked as required (#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 (#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 (#112, thanks to @elnappo)
  • FIXED: made documentation ordering of SwaggerDict extra attributes stable

1.7.0

Release date: Apr 27, 2018

  • ADDED: added integration with djangorestframework-recursive (#109, #110, thanks to @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 #107
  • FIXED: made documentation ordering of parameters stable for urls with multiple parameters (#105, #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 (#81, thanks to @ko-pp)

1.5.0

Release date: Mar 12, 2018

  • IMPROVED: serializers.HiddenField are now hidden (#78, #79, thanks to @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 (#82, #83, thanks to @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 (#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 (#74, #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 (#69)
  • FIXED: lookup_field and lookup_value_regex on the same ViewSet will no longer trigger an exception (#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 (#59, #65)
  • FIXED: Response objects without a schema are now properly handled when passed through swagger_auto_schema (#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 (#62)
  • FIXED: error responses from web UI views are now rendered with TemplateHTMLRenderer instead of throwing confusing errors (#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 (#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 (#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 (#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! (#50, #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 (#49, thanks to @blueyed)

1.2.2

Release date: Jan 12, 2018

  • FIXED: djangorestframework>=3.7.7 is now required because of breaking changes (#44, #45, thanks to @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 (#37, #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 (#37, #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

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 using pluggable inspector classes
  • ADDED: added operation_id parameter to @swagger_auto_schema
  • ADDED: integration with djangorestframework-camel-case (#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 (#24, #25)
  • IMPROVED: updated swagger-ui to version 3.8.0
  • IMPROVED: PrimaryKeyRelatedField and SlugRelatedField will now have appropriate types based on the related model (#26)
  • IMPROVED: mock views will now have a bound request even with public=False (#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 (#21, thanks to @h-hirokawa)

1.0.4

Release date: Dec 16, 2017

1.0.3

Release date: Dec 15, 2017

  • FIXED: fixed bug that caused schema views returned from cache to fail (#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