rustapi_openapi/versioning/
mod.rs

1//! API Versioning support for OpenAPI
2//!
3//! This module provides comprehensive API versioning capabilities including:
4//!
5//! - Version parsing and comparison
6//! - Multiple versioning strategies (path, header, query, accept header)
7//! - Version-based routing
8//! - Separate OpenAPI spec generation per version
9//!
10//! # Example
11//!
12//! ```rust,ignore
13//! use rustapi_openapi::versioning::{ApiVersion, VersionStrategy, VersionRouter};
14//!
15//! let router = VersionRouter::new()
16//!     .strategy(VersionStrategy::Path("/v{version}"))
17//!     .default_version(ApiVersion::new(1, 0, 0))
18//!     .version(ApiVersion::new(1, 0, 0), v1_routes)
19//!     .version(ApiVersion::new(2, 0, 0), v2_routes);
20//! ```
21
22mod router;
23mod strategy;
24mod version;
25
26#[cfg(test)]
27mod tests;
28
29pub use router::{
30    DeprecationInfo, ResolvedVersion, VersionFallback, VersionRouter, VersionedRouteConfig,
31    VersionedSpecBuilder,
32};
33pub use strategy::{ExtractedVersion, VersionExtractor, VersionSource, VersionStrategy};
34pub use version::{
35    AnyVersionMatcher, ApiVersion, MajorVersionMatcher, VersionMatcher, VersionParseError,
36    VersionRange,
37};