Skip to content

Commit d3da14a

Browse files
authored
Merge pull request #2343 from deepikagandla7456/2318
Implement Distributed Tracing Correlation Across Full Request Lifecycle with Trace-Based Testing
2 parents eb0bb82 + 3515144 commit d3da14a

2 files changed

Lines changed: 483 additions & 0 deletions

File tree

‎api/versioning/__init__.py‎

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
"""
2+
API Versioning Module
3+
4+
Provides comprehensive API versioning with:
5+
- Version registry with status tracking
6+
- Schema transformers for backward compatibility
7+
- Deprecation middleware with RFC 8594 headers
8+
- Versioned routing
9+
10+
Reference: Issue #2316 - API Versioning Strategy
11+
"""
12+
13+
from api.versioning.registry import (
14+
VersionRegistry,
15+
VersionInfo,
16+
VersionStatus,
17+
UsageStats,
18+
get_version_registry,
19+
register_custom_version,
20+
deprecate_api_version,
21+
)
22+
23+
from api.versioning.transformers import (
24+
SchemaTransformer,
25+
EnumTransformer,
26+
TransformationType,
27+
FieldTransformation,
28+
get_schema_transformer,
29+
get_enum_transformer,
30+
transform_request_for_version,
31+
transform_response_for_version,
32+
)
33+
34+
from api.versioning.deprecation import (
35+
DeprecationMiddleware,
36+
DeprecationWarning,
37+
create_deprecation_response,
38+
create_version_mismatch_response,
39+
get_deprecation_warnings_for_response,
40+
)
41+
42+
from api.versioning.router import (
43+
VersionedRouter,
44+
VersionResolver,
45+
VersionedRoute,
46+
get_requested_version,
47+
require_version,
48+
generate_versioned_openapi,
49+
check_breaking_changes,
50+
)
51+
52+
__all__ = [
53+
# Registry
54+
"VersionRegistry",
55+
"VersionInfo",
56+
"VersionStatus",
57+
"UsageStats",
58+
"get_version_registry",
59+
"register_custom_version",
60+
"deprecate_api_version",
61+
# Transformers
62+
"SchemaTransformer",
63+
"EnumTransformer",
64+
"TransformationType",
65+
"FieldTransformation",
66+
"get_schema_transformer",
67+
"get_enum_transformer",
68+
"transform_request_for_version",
69+
"transform_response_for_version",
70+
# Deprecation
71+
"DeprecationMiddleware",
72+
"DeprecationWarning",
73+
"create_deprecation_response",
74+
"create_version_mismatch_response",
75+
"get_deprecation_warnings_for_response",
76+
# Router
77+
"VersionedRouter",
78+
"VersionResolver",
79+
"VersionedRoute",
80+
"get_requested_version",
81+
"require_version",
82+
"generate_versioned_openapi",
83+
"check_breaking_changes",
84+
]

0 commit comments

Comments
 (0)