- Add a OpenAPIProvider to allow for customisation.
- Raise a RuntimeError on request validation if neither pydantic nor msgspec are installed.
- Switch from ResponseHeadersValidationError to RuntimeError if a Response is attempted to be validated.
- Bugfix any converter to openapi schema
- Bugfix ensure the OpenAPI field names are camelized.
- Support Python 3.13, drop Python 3.8.
- Bugfix the pydantic dataclass check.
- Bugfix list model class handling and type identification.
- Bugfix form multiselect request validation.
- Bugfix the deprecate decorator was meant to be called without arguments (this is backwards incompatible).
- Bugfix using msgspec without attrs
- Enhance pydantic model schema generation to utilise the schema mode as serialization for response models.
- Support all Pydantic dump options. This replaces
QUART_SCHEMA_BY_ALIAS=True
config value with the QuartSchema constructor argumentpydantic_dump_options={"by_alias: True}
or theQUART_SCHEMA_PYDANTIC_DUMP_OPTIONS
config value.
- Bugfix the Scalar template.
- Improve the error message if neither msgpec nor pydantic installed.
- Use msgpec JSON conversion if Pydantic isn't installed.
- Support msgspec and attrs alongside Pydantic. This results in pydantic being an optional extra (install quart-schema[pydantic] to continue previous usage).
- Add ScalaR documentation UI support.
- Switch the openapi structure classes to stdlib dataclasses.
- Improve the make_response performance for pydantic dataclasses.
- Simplify the pydantic usage via the TypeAdapter thereby allowing for list and dict top level models.
- Render Werkzeug's any() route parameters as enum in OpenAPI.
- Support Quart 0.19 onwards.
- Support Python 3.12 drop Python 3.7.
- Bugfix WebSocket validation check for convert casing config param.
- Bugfix handle status/headers when returning a Response.
- Fix pydantic deprecation warnings.
- Update the Swagger UI js and css versions.
- Support Pydantic 2 (dropping support for Pydantic 1).
- Remove constraints on Querystring and Form models (can have non-optional and nested structure respectively).
- Add support for querystring list parameters.
- Add support for operationID.
- Add provision support for File types.
- Bugfix check if the headers value not body type matches.
- Bugfix cope with returned responses.
- Switch to app.json.dumps rather than json.dumps in schema cmd, so as to use any specific JSON encoding.
- Restore usage of the pydantic encoder by default, to match the pydantic decoding.
- Add documentation only decorators matching the validation versions.
- Consistently apply casing conversion. This ensures that Quart-Schema does not affect the general JSONProvider and hence other usages of JSON conversions. This could introduce bugs if you were expecting this, if so please write a JSONProvider directly.
- Ensure the config convert casing setting is the authoritive source (not the extension attribute).
- Officially support Python 3.11.
- Bugfix casing of required fields.
- Bugfix JSONProvider encoding.
- Bugfix ensure paths are correctly merged in the generated OpenAPI schema.
- Bugfix allow_population_by_field_name.
- Add an info argument and model for OpenAPI info. This is backwards incompatible as the title and version arguments are removed.
- Switch from hide_route to hide. This is backwards incompatible as the decorator name has changed.
- Clarify how the OpenAPI schema is camelized when converting case (fix issues with incorrect casing in the openapi JSON).
- Convert the remaining input objects to Pydantic models, with dictionaries still accepted.
- Add deprecation decorator to mark routes as deprecated.
- Add the ability to specify external docs.
- Add QUART_SCHEMA_BY_ALIAS to the config to specify by_alias usage for response models.
- Bugfix JSONProvider loads convert casing usage.
- Bugfix compatibility with Quart 0.18.1, which is now the minimum required.
- Make it clear that redocs require Javascript to work.
- Add the ability to add security tags.
- Ensure the tag decorator overwrites any existing, this is a backwards incompatible change.
- Ensure casing conversion happens for request query string args.
- Increase swagger version to 4.12.0.
- Render endpoint summary not as code.
- Bugfix ignore websocket routes when generating openapi description.
- Require Quart >= 0.18
- Switch to GitHub rather than GitLab.
- Bugfix add auth parameter to TestClientMixin.
- Support validation of request headers, including the description of the headers in the OpenAPI schema.
- Support validation of response headers, including the description of the headers in the OpenAPI schema.
- Add a single decorator
validate
shorthand. - Fix and improve the response summary & description, so as to match the OpenAPI specification.
- Add schema to the path parameters, so as to better describe and match the OpenAPI specification.
- Add specific errors for Querystring and header validation, so they can be handled differently to Request body validation if desired.
- Bugfix ensure required is set for path paramters, so as to match the OpenAPI specification.
- Add a
quart schema
command which outputs the QUART_APP schema to stdout or a file. - Bugfix ensure the output is compliant with the openapi spec.
- Improve the typing. This should result in less type: ignores being required.
- Support stdlib dataclasses, alongside the existing pydantic dataclass support - with the former prefered.
- Support Quart 0.15.0 as the minimum version.
- Add spec for OpenAPI servers within openapi route.
- Make the Pydantic validation error available.
- Update to swagger-ui 3.47.1.
- Support automatically converting between camelCased JSON and snake_cased model/dataclass variable names. This introduces the pyhumps dependency.
- Improve testing, and support easy hypothesis testing. This allows Pydantic models and dataclasses to be sent from the test client.
- Bugfix correct error message.
- Bugfix response validation logic.
- Store the model type rather than derived schema (no noticeable impact on the public API).
- Allow routes to be tagged.
- Ensure models/dataclasses are converted to a dict, thereby preventing confusing errors when model/dataclass instances are returned without validation.
- Allow validation of form encoded data, in the same way JSON encoded data is currently validated.
- Add the ability to hide routes from the openapi specification. This changes routes from default hidden to default visible.
- Support validation of Query string parameters. Via a
validate_querystring
decorator. - Support auto-documenting path parameters.
- Only include routes in the OpenAPI that have documented information.
- Split the route docstring into OpenAPI summary and description for the route.
- Add documentation UI using redoc.
- Allow the JS/CSS URLS for the documentation UI to be configured.
- Basic initial release to test the schema usage.