All notable changes to this project will be documented in this file.
This project adheres to Calendar Versioning.
The first number of the version is the year. The second number is incremented with each release, starting at 1 for each year. The third number is for emergencies when we need to start branches for older releases.
v24.1.0 - UNRELEASED
typing.Any
is now supported in the OpenAPI schema, rendering to an empty schema. (#58)- Dictionaries are now supported in the OpenAPI schema, rendering to object schemas with
additionalProperties
. (#58) - {meth}
uapi.flask.FlaskApp.run
, {meth}uapi.quart.QuartApp.run
and {meth}uapi.starlette.StarletteApp.run
now exposehost
parameters. (#59) - uapi is now tested against Python 3.13. (#60)
v23.3.0 - 2023-12-20
- Return types of handlers are now type-checked. (#57)
- Introduce Response Shorthands, port the
str
,bytes
,None
and attrs response types to them. (#57) - Unions containing shorthands and uapi response classes (and any combination of these) are now better supported. (#57)
- uapi is now tested against Mypy. (#57)
v23.2.0 - 2023-12-10
datetime.datetime
anddatetime.date
are now supported in the OpenAPI schema, both in models and handler parameters. (#53)- Simple forms are now supported using
uapi.ReqForm[T]
. Learn more. (#54) - uapi now sorts imports using Ruff.
v23.1.0 - 2023-11-12
- Add the initial header implementation.
- Function composition (dependency injection) is now documented.
- Endpoints can be excluded from OpenAPI generation by passing them to
App.make_openapi_spec(exclude=...)
orApp.serve_openapi(exclude=...)
. - Initial implementation of OpenAPI security schemas, supporting the
apikey
type in Redis session backend. - Update the Elements OpenAPI UI to better handle cookies.
- Flesh out the documentation for response types.
- Add OpenAPI support for string literal fields.
- Add OpenAPI support for generic attrs classes.
- Add OpenAPI support for unions of a single attrs class and
None
(optionals). - Properly set the OpenAPI
required
attribute for attrs fields without defaults. - Add OpenAPI support for primitive types in unions.
- uapi now uses PDM.
- Dictionary request bodies and attrs classes with dictionary fields are now supported.
- OpenAPI
operationId
properties for operations are now generated from handler names. - OpenAPI summaries and descriptions are now supported, and can be overridden.
aiohttp.web.StreamResponse
is now handled as the root class of aiohttp responses.- {meth}
uapi.aiohttp.AiohttpApp.run
now uses the aiohttp App runners internally. - uapi is now tested against Flask 3.
- uapi is now tested against Python 3.12.
- Stringified annotations for return types are now handled properly.
- Framework-specific request objects are ignored for OpenAPI.
- Fix OpenAPI generation so items produced by the dependency injection system are properly generated.
- Fix OpenAPI generation for models with identical names.
- Fix OpenAPI generation for response models with lists of attrs classes.
v22.1.0 - 2022-12-07
- Changelog starts.