@@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8- ## [ 2.4.4] - 2025-11-??
8+ ## [ 2.4.4] - 2025-11-15 : mount_fuji :
99
1010- Introduce ` MiddlewareList ` and ` MiddlewareCategory ` to simplify middleware management
1111 and ordering of middlewares (see [ #620 ] ( https://github.com/Neoteroi/BlackSheep/issues/620 ) ).
@@ -29,15 +29,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2929 when mapping to user-defined dataclasses, Pydantic v2 models, or classes
3030 (see [ #614 ] ( https://github.com/Neoteroi/BlackSheep/issues/614 ) ). Previously, extra
3131 properties were not ignored by default and required the user to explicitly code their
32- input classes to allow extra properties.
33- This is also done for expected input body declared as ` list[T] ` , ` Sequence[T] ` , and
34- ` tuple[T] ` where ` T ` is a dataclass, Pydantic model, or plain class.
35- The user can still control how input bodies from clients are converted using custom
36- binders or altering ` blacksheep.server.bindings.class_converters ` .
37- ** Note:** automatic type conversion from strings is not performed for object properties.
38- Use Pydantic models if you want this feature. Example: dates can require conversion
39- when mapping JSON input, and everything is transmitted as text when using multipart
40- form data.
32+ input classes to allow extra properties. This is also done for sub-properties, lists,
33+ and dictionaries. The user can still control how exactly input bodies from clients are
34+ converted using custom binders or altering
35+ ` blacksheep.server.bindings.class_converters ` .
4136- Add support for specifying OpenAPI tags for controllers. This simplifies handling tags
4237 for documentation ([ #616 ] ( https://github.com/Neoteroi/BlackSheep/issues/616 ) ).
4338- Improve the build matrix to build wheels for ` arm64 ` architecture for Linux and
@@ -56,14 +51,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5651- Attach ` EnvironmentSettings ` to the ` Application ` object for runtime inspection, which
5752 is useful for: transparency and debugging, testing
5853 (` assert app.env_settings.force_https is True ` ), health check endpoints or admin tools
59- can expose configuration:
60-
61- ``` python
62- @get (" /health/config" )
63- async def config_info ():
64- return {" env" : app.env_settings.env, ... }
65- ```
66-
54+ can expose configuration.
6755- Add ` HTTPSchemeMiddleware ` to set request scheme when running behind reverse
6856 proxies or load balancers with TLS termination.
6957 See [ #631 ] ( https://github.com/Neoteroi/BlackSheep/issues/631 ) .
@@ -82,6 +70,9 @@ async def config_info():
8270- Improve ` OpenIDSettings ` , ` CookieAuthentication ` , and ` AntiForgeryHandler ` to handle
8371 secrets using the ` Secret ` class from ` essentials.secrets ` . Passing secrets as ` str `
8472 directly issues a deprecation warning and won't be supported in ` 2.5.x ` or ` 2.6.x ` .
73+ - Add support for annotated types in ` OpenAPIHandler ` return types, by @tyzhnenko . This
74+ feature is important to support automatic generation of OpenAPI Documentation when
75+ returning instances of ` Response ` (e.g. ` Annotated[Response, ProductDetails] ` ).
8576
8677## [ 2.4.3] - 2025-10-19 :musical_keyboard :
8778
0 commit comments