@@ -4,10 +4,52 @@ All notable changes to FastOpenAPI are documented in this file.
44
55FastOpenAPI follows the [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) format.
66
7- ## [ 0.8.0 ] - Unreleased
7+ ## [ 1.0.0b1 ] - Unreleased
88
99### Added
10- - ` DjangoRouter ` for integration with the ` Django ` framework.
10+
11+ - ** Dependency Injection system** with ` Depends ` and ` Security ` classes for automatic dependency resolution
12+ - Request-scoped dependency caching with circular dependency detection
13+ - Security scopes validation with OAuth2 support
14+ - ** FastAPI-style parameter classes** : ` Query ` , ` Path ` , ` Header ` , ` Cookie ` , ` Body ` , ` Form ` , ` File `
15+ - Full Pydantic v2 validation support for all parameter types (gt, ge, lt, le, min_length, max_length, pattern, etc)
16+ - Parameter documentation support (description, examples, deprecated flags)
17+ - Pre-defined parameter types: ` PositiveInt ` , ` NonNegativeInt ` , ` PositiveFloat ` , ` NonEmptyStr ` , ` LimitedStr `
18+ - ` FileUpload ` class for framework-agnostic file handling with ` .read() ` and ` .aread() ` methods
19+ - ` RequestData ` unified container for request data across all frameworks
20+ - ` Response ` class for custom responses with headers and status codes
21+ - ** Django support** with ` DjangoRouter ` (sync) and ` DjangoAsyncRouter ` (async)
22+ - Built-in OpenAPI security scheme definitions: Bearer JWT, API Key (header/query), Basic Auth, OAuth2
23+ - Configurable security schemes via ` security_scheme ` parameter in router constructor
24+ - Automatic security scheme integration in OpenAPI documentation
25+ - ` APIError.from_exception() ` method for converting any exception to standardized format
26+ - Thread-safe caching for parameter models, function signatures, and Pydantic schemas
27+ - Modular architecture with dedicated packages: ` core/ ` , ` errors/ ` , ` openapi/ ` , ` resolution/ ` , ` response/ ` , ` routers/ `
28+ - ` RouteInfo ` dataclass for type-safe route metadata
29+ - Enhanced OpenAPI schema generation with ` SchemaBuilder ` , ` ParameterProcessor ` , and ` ResponseBuilder ` helper classes
30+ - Comprehensive error schema generation in OpenAPI documentation
31+ - Support for all parameter sources in OpenAPI (path, query, header, cookie, body, form, file)
32+
33+ ### Changed
34+
35+ - ** Complete architecture refactor** from monolithic to modular design using composition over inheritance
36+ - Router implementation changed from inheritance-based to composition-based using ` BaseAdapter ` pattern
37+ - Moved parameter resolution from ` BaseRouter.resolve_endpoint_params() ` to dedicated ` ParameterResolver ` class
38+ - Moved OpenAPI generation from ` BaseRouter.generate_openapi() ` to dedicated ` OpenAPIGenerator ` class
39+ - Moved response serialization from ` BaseRouter._serialize_response() ` to ` ResponseBuilder ` class
40+ - Split OpenAPI generation into focused helper classes for better separation of concerns
41+ - Reorganized error handling from ` error_handler.py ` module to ` errors/ ` package
42+ - Split ` base_router.py ` into multiple focused modules with single responsibility
43+ - Route metadata structure changed from tuple to ` RouteInfo ` dataclass for better type safety
44+ - Router constructor signature updated with ` security_scheme ` parameter (default: ` SecuritySchemeType.BEARER_JWT ` )
45+
46+ ### Deprecated
47+
48+ - Importing from ` fastopenapi.error_handler ` module (use ` from fastopenapi.errors import ... ` instead) - will show deprecation warning
49+
50+ ### Removed
51+ - ` BaseRouter.generate_openapi() ` method (use ` router.openapi ` property instead)
52+ - Internal API methods for custom router developers: ` resolve_endpoint_params() ` and ` _serialize_response() `
1153
1254
1355## [ 0.7.0] - 2025-04-27
0 commit comments