Features:
- Backwards-incompatible: Remove
flask_smorest.__version__
(:pr:`616`).
Other changes:
Features:
- Always use
flask.json
to serialize data (API output, ETag, API docs). Ensures a user-defined custom JSON serializer is used everywhere. (:pr:`561`)
Bug fixes:
- Fix type-hint in paginate method (:pr:`593`). Thanks :user:`jtait` for the PR.
Other changes:
- Officially support Python 3.12 (:pr:`591`). Thanks :user:`goddessana` for the PR.
- Require Flask>=3.0.2 and Werkzeug>=3.0.01 (:pr:`604`).
Bug fixes:
- Fix OpenAPI docs to include response headers when pagination is used (:issue:`578`). Thanks :user:`drcpu-github` for the report and the PR.
Features:
- Support Flask 3.x and werkzeug 3.x (:pr:`576`).
Bug fixes:
- Fix order of path parameters extracted from Flask route (:issue:`541`). Thanks :user:`ddorian` for the report and the PR.
Other changes:
- Fix setup.py to require Flask>=2.0.1, needed since 0.42.0.
Features:
- Backwards-incompatible: Support multiple APIs in a single application via
Api
paramconfig_prefix
. TheApi
object is now accessible atapp.extensions["flask-smorest"]["apis"][config_prefix]["ext_obj"]
rather thanapp.extensions["flask-smorest"]["ext_obj"]
. (:pr:`485`) Thanks :user:`petraszd` for the contribution.
Other changes:
Features:
- Allow multiple responses with same status code and different content types (:pr:`481`).
- Set
stacklevel
in calls to warnings/warn (:pr:`462`).
Other changes:
- Officially support Python 3.11 (:pr:`416`).
Features:
- Support apispec 6.0.0 (:pr:`408`).
- Document webargs's
DelimitedList
(:pr:`409`). - Backwards-incompatible: Rework ETag feature. Drop the "ETag computed with
API response data using another schema" case and allow decorating a whole
MethodView
at once rather than decorating each method. (:pr:`394`)
Other changes:
- Backwards-incompatible: Drop apispec < 6.0.0 (:pr:`408`).
- Backwards-incompatible: Drop marshmallow < 3.18.0 (:pr:`410`).
Features:
- Use
g
rather than_app_ctx_stack.top
. The latter is deprecated in Flask 2.2 (:pr:`392`). - Use standard
json
rather thanflask.json
to generate ETag data. Our use offlask.json
is broken in Flask 2.2. Also always sort keys when serializing data for ETag computation (this reverts :pr:`305`). ETag is now insensitive to payload dict order. (:pr:`393`)
Bug fixes:
- Import MethodView from flask rather than MethodViewType` which is removed in Flask 2.2 (:pr:`387`). Thanks :user:`0x78f1935` for the contribution.
Features:
- Add
format
argument toflask openapi print
andflask openapi write
commands to provide a YAML output (:pr:`367`). Thanks :user:`derlikh-smart` for the contribution.
Features:
- Support nested blueprints documentation (:pr:`341`). Thanks :user:`Cnoor0171` for the PR.
Features:
- Add
content_type
argument toresponse
andalt_response
, to document a response content type that differs from the default one. It can be used to document a file response. (:pr:`330`).
Features:
- Add
parameter
argument toregister_blueprint
to document path parameters in url_prefix (:pr:`313`). - Don't force
sort_keys=True
in_generate_etag
to respectJSON_SORT_KEYS
app setting (:pr:`305`).
Bug fixes:
- Fix automatic documentation of responses with a status code implying an empty body response to reflect that the body is empty (:pr:`318`).
Other changes:
- Officially support Python 3.10 (:pr:`308`).
- Drop support for Python 3.6 (:pr:`306`).
- Drop PyPy from CI tests (:pr:`307`).
Features:
- Backwards-incompatible: Modify
alt_response
signature. The second positional is now a response reference as string. If none is provided, then the response dic is built using keyword arguments. The schema is optional and can be a reference as string. (:pr:`283`) - Allow
alt_response
to define a success response, so that other processings applying to this response are correctly documented (:pr:`284`).
Other changes:
- Format code using black with pre-commit (:pr:`282`).
- Use dependabot to update dependencies (:pr:`286` and :pr:`288`).
- Specify apispec[marshmallow] rather than apispec in install_requires in setup.py (:pr:`287`).
Bug fixes:
- Fix method order in spec for view functions (:pr:`281`).
Features:
- Add
tags
parameter toBlueprint.route
andBlueprint.add_url_rule
(:pr:`275`).
Bug fixes:
- When registering a
MethodView
, if methods are specified with themethods
argument, only document those methods (:pr:`274`).
Features:
- Backwards-incompatible: Lazy-register components (default responses, ETag
and pagination headers) so that they only appear in the spec if they are
used. Remove
ResponseReferencesPlugin
. RenamePAGINATION_HEADER_FIELD_NAME
toPAGINATION_HEADER_NAME
. (:pr:`268`) - Override
Blueprint.add_url_rule
to allow the use ofadd_url_rule
, not only theroute
decorated form (:pr:`272`).
Other changes:
- Backwards-incompatible: Drop apispec < 5.1.0 (:pr:`265`)
Features:
- Support
Blueprint
registration with custom names (a feature introduced in Flask 2.0.1) (:pr:`266`). - Replace
missing
withload_default
inPaginationParametersSchema
. The latter is deprecated in marshmallow 3.13.0. (:pr:`265`)
Other changes:
- Backwards-incompatible: Drop marshmallow < 3.13.0 (:pr:`265`)
- Backwards-incompatible: Support apispec 5. Drop apispec < 5.0.0 (:pr:`265`)
Bug fixes:
- Quote RapiDoc parameters (:pr:`262`). Thanks :user:`TimDiekmann` for the PR.
Bug fixes:
- Document ETag headers in OpenAPI spec (:pr:`254`). Thanks :user:`TimDiekmann` for the PR.
- Use
click.echo
for spec output commands (:pr:`255`). Thanks :user:`greyli` for the PR.
Features:
- Support RapiDoc interface to expose the API spec (:pr:`248`).
Features:
- Support Flask 2 and Werkzeug 2 (:pr:`243`).
Other changes:
- Backwards-incompatible: Drop Flask < 2 and Werkzeug < 2 (:pr:`243`).
- Backwards-incompatible: Remove feature setting
basePath
fromAPPLICATION_ROOT
(:pr:`242`).
Other changes:
- Backwards-incompatible: Support webargs 8. Drop support for webargs 7.
The main change is about management of unknown fields in requests.
unknown
defaults toNone
for body locations. (:pr:`239`)
Features:
- Backwards-incompatible: In
@response
decorator, renamecode
argument tostatus_code
and make it positional (:pr:`193` and :pr:`159`). - Add
Blueprint.alt_response
decorator to document alternative responses (:pr:`159`).
Features:
- Pass
Api
instance to _prepare_*_doc callbacks (:pr:`222`). - Allow the user to opt-out of the feature adding a default error to each response and allow customization of the default error name (:pr:`222`).
- Backwards-incompatible: Only add referenced default responses to the spec,
using
ResponseReferencesPlugin
. (:pr:`208`) Thanks :user:`lindycoder` for the pull-request.
Bug fixes:
- Document error response even if
@response
decorator is not used (:pr:`222`).
Bug fixes:
- Don't pass field metadata as kwargs (deprecated in marshmallow 3.10.0) (:pr:`205`).
Other changes:
- Backwards-incompatible: Require marshmallow >= 3.10.0 (:pr:`205`).
Features:
- Backwards-incompatible: Use warnings.warn rather than log warnings in application log (:pr:`194`).
Other changes:
- Backwards-incompatible: Support webargs 7. Drop support for webargs 6. The main change is about management of unknown fields in requests. Users should refer to webargs documentation, sections Upgrading to 7.0 and Setting unknown. (:pr:`203`)
Features:
- Officially support Python 3.9 (:pr:`195`).
Other changes:
- Bound dependencies versions in setup.py (:pr:`202`).
Features:
- Backwards-incompatible: Rework Werkzeug converters documentation to make it more extensible and document converter parameters (:pr:`182`).
- Backwards-incompatible: Don't document
int
format as"int32"
andfloat
format as"float"
, as those are platform-dependent (:pr:`188`). - Document Werkzeug's
AnyConverter
(:pr:`191`).
Other changes:
- Backwards-incompatible: Drop support for marshmallow 2.
- Backwards-incompatible: Drop support for apispec 3.
Bug fixes:
- Fix bug introduced in 0.24.0 preventing setting a status code or header when
returning a
Response
object. (:pr:`178`). Thanks :user:`marksantcroos` for reporting.
Features:
- Backwards-incompatible: Add
OPENAPI_SWAGGER_UI_CONFIG
to allow passing a dict of Swagger UI configuration parameters. RemoveOPENAPI_SWAGGER_UI_SUPPORTED_SUBMIT_METHODS
: the same can be achieved by passingsupportedSubmitMethods
inOPENAPI_SWAGGER_UI_CONFIG
. Removelayout
anddeepLinking
default overrides. Those can be passed inOPENAPI_SWAGGER_UI_CONFIG
as well. (:pr:`171`). Thanks :user:`joshua-harrison-2011` for the pull-request.
Features:
- Backwards-incompatible: Make API title and version mandatory parameters.
Before this change, the version would default to
"1"
and the title would beapp.name
. Those two parameters can be passed at init or as application configuration parametersTITLE
andAPI_VERSION
. Also renameOpenAPIVersionNotSpecified
toMissingAPIParameterError
. (:pr:`169`). Thanks :user:`playpauseandstop` for the help on this. - Backwards-incompatible: Rework pagination documentation to allow more
customization. This change will break code overriding
PAGINATION_HEADER_DOC
,_make_pagination_header
or_prepare_pagination_doc
(:pr:`153`).
Features:
- Add
flask openapi print
andflask openapi write
commands (:pr:`154`).
Other changes:
- Backwards-incompatible: Drop support for Python 3.5.
Bug fixes:
- Use HTTPStatus
phrase
, notname
, in response description (:pr:`158`).
Bug fixes:
- Deep-copy the documentation information for each method of a resource. This fixes a crash when a view function serves several methods, due to apispec mutating doc info dict. (:pr:`147`) Thanks :user:`DrChrisLevy` for reporting.
Features:
- Support webargs 6.0.0 (:pr:`132`).
Other changes:
- Backwards-incompatible: Drop support for webargs < 6.0.0. Marshmallow 3
code with stacked
@arguments
using the same location must ensure the arguments schema haveMeta.unknown=EXCLUDE
. This also applies to@arguments
withquery
location stacked with@paginate
. Also, validation error messages are namespaced under the location. See the upgrading guide in webargs documentation for more details and a comprehensive list of changes. (:pr:`132`)
Bug fixes:
- Backwards-incompatible: Use
HTTPStatus
name
rather thanphrase
to name error components. This fixes an issue due tophrase
containing spaces not being URL-encoded. Also changeDefaultError
intoDEFAULT_ERROR
for consistency. This change will break code referencing one of those errors. (:issue:`136`). Thanks :user:`michelle-avery` for reporting.
Other changes:
- Backwards-incompatible: Remove
OPENAPI_REDOC_VERSION
andOPENAPI_SWAGGER_UI_VERSION
. Remove hardcoded CDNs. Users should modify their code to useOPENAPI_REDOC_URL
andOPENAPI_SWAGGER_UI_URL
instead. The docs provide examples of CDN URLs. (:issue:`134`).
Bug fixes:
- Fix
utils.deepupdate
for the case where the original value is a string or integer and the updated value is adict
(:issue:`129`). Thanks :user:`maj-skymedia` for reporting.
Bug fixes:
- Fix a regression introduced in 0.19.0. With marshmallow 2, the response would
contain two
'X-Pagination'
headers: the correct header and an empty one. (:pr:`128`)
Features:
- Backwards-incompatible: Refactor automatic documentation generation. At
import time, each decorator stores information under its own namespace in
the view function's
_apidoc
attribute. Then at app init time, the information is used to generate the docs. This allows access to init time parameters, such as OpenAPI version or application parameters like feature toggle flags, when generating the doc. Custom decorators storing doc in_apidoc
must adapt by storing doc under their own name (e.g.:_apidoc['custom']
), creating a doc preparation callback (e.g.:_prepare_custom_doc
and appending this callback toBlueprint._prepare_doc_cbks
. (:pr:`123`). - Define all possible HTTP responses as response components and automatically
document "error" responses:
"Default Error"
when@response
is used, response returned by@arguments
on client input error, and responses for 304, 412 and 428 when@etag
is used. Also document pagination header. (:pr:`125`). - Document error response in
@paginate
decorator (:pr:`126`).
Bug fixes:
- Backwards-incompatible: Ensure pagination arguments are in query string.
'page'
and'page_size'
arguments passed in any other location are ignored by@paginate
decorator. (:pr:`127`)
Other changes:
- Restrict webargs to <6.0.0 in setup.py due to breaking changes introduced in webargs 6 (:issue:`117`).
Features:
check_etag
logs a warning if method is not PUT, PATCH or DELETE (:pr:`116`).
Bug fixes:
- Only return 304 on GET and HEAD (:pr:`115`).
Features:
- Add default description to responses (:pr:`113`). Thanks :user:`nonnib` for the pull-request.
Features:
- Officially support Python 3.8 (:pr:`108`).
Bug fixes:
- Fix passing
spec_kwargs
inApi.__init__
andapp
inApi.init_app
(:issue:`103`).
Rename to flask-smorest (:issue:`42`).
Features:
- Backwards-incompatible: Only return status code and short name in error handler (:pr:`84`).
- Backwards-incompatible: Remove logging from error handler. Logging can be
achieved in application code by overriding
handle_http_exception
. Remove_prepare_error_response_content
. Response payload is computed inhandle_http_exception
. (:pr:`85`) - Backwards-incompatible: Remove
InvalidLocationError
. The mapping from webargs locations to OAS locations is done in apispec and no exception is raised if an invalid location is passed. (:pr:`81`) - Add
content_type
argument toBlueprint.arguments
and provide reasonable default content type forform
andfiles
(:pr:`83`). - Add
description
parameter toBlueprint.arguments
to pass description forrequestBody
(:pr:`93`). - Allow customization of docstring delimiter string (:issue:`49`).
- Support file uploads as multipart/form-data (:pr:`97`).
Bug fixes:
- Fix documentation of
form
andfiles
arguments: userequestBody
in OAS3, document content type (:pr:`83`).
Other changes:
- Backwards-incompatible: Don't republish
NestedQueryArgsParser
anymore. This belongs to user code and can be copied from webargs doc (:pr:`94`). - Backwards-incompatible: Bump minimum apispec version to 3.0.0.
Bug fixes:
- Fix detection of unhandled exceptions in error handler for Flask=>1.1.0 (:pr:`82`).
Other changes:
- Bump minimum Flask version to 1.1.0. From this version on, uncaught
exceptions are passed to the error handler as
InternalServerError
with the exception attached asoriginal_exception
attribute. (:pr:`82`)
Features:
- Add
parameters
argument toBlueprint.route
to pass documentation for parameters that are shared by all operations of a path (:pr:`78`).
Other changes:
- Backwards-incompatible: Bump minimum apispec version to 2.0.0.
- Backwards-incompatible: Path parameters documentation passed in
Blueprint.doc
is no longer merged with automatic documentation. It should be passed inBlueprint.route
instead. - Backwards-incompatible: Remove
Api.schema
andApi.definition
. Those methods are useless sinceSchema
components are automatically registered by apispec. Manual component registration is still possible using the internal apispecComponents
object. (:pr:`75`)
Bug fixes:
- marshmallow 3.0.0rc7 compatibility (:pr:`77`).
Features:
- Add parameters to pass examples and headers in
Blueprint.response
decorator (:pr:`63`). - Add parameters to pass examples for
requestBody
in OpenAPI v3 inBlueprint.arguments
decorator (:pr:`68`). - Support status codes expressed as
HTTPStatus
inBlueprint.response
decorator (:issue:`60`). Thanks :user:`Regzand` for reporting.
Other changes:
- Bump minimum apispec version to 1.3.2.
- Bump minimum werkzeug version to 0.15. With 0.14.x versions, 412 responses are returned with no content.
- Backwards-incompatible: When using
Blueprint.doc
decorator to provide additional documentation to the response described in theBlueprint.response
decorator, the user must use the same format (str
,int
orHTTPStatus
) to express the status code in both decorators. This is a side-effect of (:issue:`60`). Now that headers and examples can be described inBlueprint.response
, this should not be a common use case.
Features:
- Officially support Python 3.7 (:pr:`45`).
- Rename
Api.definition
toApi.schema
. KeepApi.definition
as an alias toApi.schema
for backward compatibility (:pr:`53`).
Bug fixes:
- Fix passing route with path parameter default value (:pr:`58`). Thanks :user:`zedrdave` for reporting.
- When no descrition is provided to
Blueprint.response
, don't add an empty string as description in the docs. - Fix returning a
tuple
subclass from a view function. Only rawtuple
instances are considered as Flask's (return value, status, headers).tuple
subclasses are treated aslist
and can be paginated/dumped. Rawtuple
return values should be cast to another type (e.g.list
) to be distinguished from (return value, status, headers) tuple. (:issue:`52`) Thanks :user:`asyncee` for reporting.
Features:
- Allow view functions decorated with
response
to return aResponse
object or a tuple with status and/or headers (:pr:`40`). - Allow view functions decorated with
paginate
to return a tuple with status and/or headers (:pr:`40`). The pagination header is now passed in the response tuple. Users relying on undocumentedget_context()['headers']
as a workaround to pass headers must update their code to pass headers in the response tuple as well.
Bug fixes:
- Fix ETag computation when headers contain a duplicate key.
Features:
- Register Werkzeug's
UUIDConverter
inApi
so thatuuid
path parameters are correctly documented.
Features:
- Add
flask_plugin
andmarshmallow_plugin
spec kwargs to allow overriding base plugins. - Backwards-incompatible: Rename
plugins
spec kwarg toextra_plugins
. - Backwards-incompatible: Don't default to OpenAPI version 2.0. The version
must now be specified, either as
OPENAPI_VERSION
app parameter or asopenapi_version
spec kwarg. - Support apispec 1.0.0.
Other changes:
- Backwards-incompatible: Drop support for apispec 0.x.
Features:
- Backwards-incompatible:
Api.register_converter
doesn't register converter in Flask app anymore. It should be registered manually usingapp.url_map.converters['converter_name'] = Converter
. Api.definition
,Api.register_field
andApi.register_converter
can be called before app initialization. The information is buffered and passed to the internalAPISpec
object when it is created, inApi.init_app
.
Bug fixes:
- Fix typo in
ErrorHandlerMixin._prepare_error_response_content
.
Features:
- The
HTTP_METHODS
list that defines the order of the methods in the spec is now a class attribute ofBlueprint
. It can be overridden to enforce another order.
Bug fixes:
- Import
Mapping
fromcollections.abc
rather thancollections
. The latter is deprecated in Python 3.7 and will be removed in 3.8. - Merge manual doc added with
Blueprint.doc
with automatic documentation after auto doc is prepared (i.e. adapted to OpenAPI version) (:issue:`19`). Thanks :user:`fbergroth` for reporting. - Merge automatic path parameter documentation with existing manual doc rather than append as duplicate parameter (:issue:`23`). Thanks :user:`congenica-andrew` for reporting.
- Fix path parameter documentation structure when using OpenAPI v3.
- Document http status codes as strings, not integers.
- Fix use of Swagger UI config parameter
OPENAPI_SWAGGER_UI_URL
.
Other changes:
- 100% test coverage !
Features:
- Backwards-incompatible: Rework of the ETag feature. It is now accesible
using dedicated
Blueprint.etag
decorator.check_etag
andset_etag
are methods ofBlueprint
andetag.INCLUDE_HEADERS
is replaced withBlueprint.ETAG_INCLUDE_HEADERS
. It is enabled by default (only on views decorated withBlueprint.etag
) and disabled withETAG_DISABLED
application configuration parameter.is_etag_enabled
is now private. (:pr:`21`) - Backwards-incompatible: The
response
decorator returns aResponse
object rather than a (Response
object, status code) tuple. The status code is set in theResponse
object. - Support apispec 1.0.0b5.
Features:
- Backwards-incompatible: Don't prefix all routes in the spec with
APPLICATION_ROOT
. If using OpenAPI v2, setAPPLICATION_ROOT
asbasePath
. If using OpenAPI v3, the user should specifyservers
manually. - Backwards-incompatible: In testing and debug modes,
verify_check_etag
not only logs a warning but also raisesCheckEtagNotCalledError
ifcheck_etag
is not called in a resource that needs it.
Features:
Api.register_blueprint
passes**options
keyword parameters toapp.register_blueprint
to overrideBlueprint
defaults. Thanks :user:`dryobates` for the suggestion.
Features:
- Support apispec 1.0.0b3.
Bug fixes:
- Fix crash when serving documentation at root of application. Thanks :user:`fbergroth` for the suggestion.
Features:
- Backwards-incompatible: When pagination parameters are out of range, the API does not return a 404 error anymore. It returns a 200 code with an empty list and pagination metadata (:pr:`10`).
- Backwards-incompatible: Remove dependency on python-dateutil. This is an optional marshmallow dependency. Whether it is needed to deserialize date, time, or datetime strings depends on the application.
- Rework internal features by using mixin classes. This makes the code cleaner and adds customization possibilities (:issue:`9`).
- Backwards-incompatible:
DEFAULT_PAGINATION_PARAMETERS
is a class attribute ofBlueprint
. - Backwards-incompatible: When no
Page
class is passed topagination
, (i.e. when doing pagination in view function), the pagination parameters are passed as aPaginationParameters
object. The item count must be passed by setting it asitem_count
attribute of thePaginationParameters
object. Theset_item_count
function is removed. - The pagination header name can be configured by overriding
PAGINATION_HEADER_FIELD_NAME
class attribute ofBlueprint
. If set toNone
, no pagination header is added to the response. - Backwards-incompatible: The
paginate
decorator doesn't useNestedQueryFlaskParser
by default. It is renamed toNestedQueryArgsParser
and it can be used by overridingBlueprint.ARGUMENTS_PARSER
. - Default error handler is registered for generic
HTTPException
. Other extensions may register other handlers for specific exceptions or codes (:pr:`12`).
Other changes:
- Backwards-incompatible: Drop Flask 0.x support. Flask>=1.0 is now required.
Features:
- Add page (page number) to pagination metadata.
- Set produces and consumes root document attributes when using OpenAPI v2.
Bug fixes:
- Document body parameter correctly when using OpenAPI v3.
Features:
- Add
API_SPEC_OPTIONS
app config parameter. Thanks :user:`xalioth` for the suggestion. - Backwards-incompatible:
Api
accepts aspec_kargs
parameter, passed as kwargs to the internalAPISpec
instance.spec_plugins
is removed, plugins shall be passed asspec_kwargs={'plugins': [...]}
. - Backwards-incompatible: Get summary and description from docstrings (:pr:`5`).
- Add support for marshmallow 3.0.0b13. 2.x and 3b are now supported.
- Add support for apispec 1.0.0b2. 0.x and 1b are now supported.
Bug fixes:
- Document response schema correctly when using OpenAPI 3 (:issue:`8`). Thanks :user:`ffarella` for reporting.
Other changes:
- Backwards-incompatible: Remove
_wrapper_class
fromPage
. Creating a custom pager is easier by just overridingPage
methods. - Backwards-incompatible: Let
OPENAPI_SWAGGER_UI_SUPPORTED_SUBMIT_METHODS
default to "all methods" list.
Bug fixes:
- Swagger UI integration: respect
OPENAPI_SWAGGER_UI_URL
configuration paramater. Api.register_field
: useAPISpec.register_field
rather than accessself.spec.ma_plugin
directly.
Features:
- Backwards-incompatible: Use apispec 0.39.0 plugin class interface.
- Backwards-incompatible: Expose APISpec's
register_field
andregister_converter methods
fromApi
object.Api.register_converter
signature is modified to makename
parameter optional. - Pass extra apispec plugins to internal APISpec instance.
Other changes:
- Backwards-incompatible: Drop official support for Python 3.4.
Features:
- Pass OpenAPI version as
OPENAPI_VERSION
app config parameter. - Add Swagger UI (3.x) integration.
Features:
- ReDoc: Use unpkg CDN for 2.x version.
Features:
- Backwards-incompatible: In
Blueprint.route
, the endpoint name defaults to the function name with the case unchanged. Before this change, the name was lowercased. - Backwards-incompatible: Pagination is now managed by dedicated
Blueprint.paginate
decorator. - Add
etag.INCLUDE_HEADERS
to specify which headers to use for ETag computation (defaults to['X-Pagination']
). - In
verify_check_etag
, endpoint name is added to the warning message.
Bug fixes:
- Pagination: don't crash if
item_count
is not set, just log a warning and set no pagination header. - API spec: Fix leading/trailing slash issues in api-docs Blueprint. Fixes compatibility with Flask 1.0.
Features:
- Allow multiple calls to
Blueprint.arguments
on a view function. - Enforce order of fields in
PaginationParametersSchema
andPaginationMetadataSchema
. - Minor improvements in test_examples.py.
Features:
- Backwards-incompatible: The case of a parameter both in URL and in arguments Schema is now unsupported.
- Backwards-incompatible: By default, Schema parameter passed in
Blueprint.arguments
is documented as required. - Backwards-incompatible:
APISpec.register_field
now uses apispec API. It must be passed a(type, format)
couple or an already registeredField
class (this includes base marshmallowFields
. When using(type, format)
,format
doesn't default toNone
anymore. - Preserve order when serving the spec file: - Fields are printed in declaration order if Schema.Meta.ordered is True - Methods in a method view are printed in this order: ['OPTIONS', 'HEAD', 'GET', 'POST', 'PUT', 'PATCH', 'DELETE'] - Paths are added in declaration order
Bug fixes:
- Document response as array when using paginate_with.
Features:
- Add leading and trailing
/
to OPENAPI_URL_PREFIX if missing. - Backwards-incompatible: Change default URL path for OpenAPI JSON to
'openapi.json'
.
Bug fixes:
- Fix OpenAPI docs URL paths.
- Backwards-incompatible:
Blueprint.route(self, rule, **options)
matchesflask
'sBlueprint
signature.
Features:
format
parameter inregister_converter
andregister_field
is now optional and defaults toNone
.- APISpec inherits from original apispec.APISpec.
- Backwards-incompatible: The internal
APISpec
instance is now exposed as public attributespec
ofApi
.register_converter
andregister_field
are not proxied anymore byApi
and must be called onspec
. - Backwards-incompatible:
Api.register_converter
takes aname
parameter and registers a converter in theFlask
application as well as in its internalAPISpec
instance. - Backwards-incompatible:
Api.register_spec_plugin
is removed.api.register_spec_plugin(...)
shall be replaced withapi.spec.setup_plugin(...)
.
Bug fixes:
- Fix version number.
Support:
- Add dev-requirements.txt.
First release.