Expand description
API Versioning support for OpenAPI
This module provides comprehensive API versioning capabilities including:
- Version parsing and comparison
- Multiple versioning strategies (path, header, query, accept header)
- Version-based routing
- Separate OpenAPI spec generation per version
§Example
ⓘ
use rustapi_openapi::versioning::{ApiVersion, VersionStrategy, VersionRouter};
let router = VersionRouter::new()
.strategy(VersionStrategy::Path("/v{version}"))
.default_version(ApiVersion::new(1, 0, 0))
.version(ApiVersion::new(1, 0, 0), v1_routes)
.version(ApiVersion::new(2, 0, 0), v2_routes);Structs§
- AnyVersion
Matcher - Matcher that accepts any version
- ApiVersion
- API version using semantic versioning
- Deprecation
Info - Deprecation information
- Extracted
Version - Result of version extraction
- Major
Version Matcher - Matcher for major version only
- Resolved
Version - Result of version resolution
- Version
Extractor - Version extractor that can extract versions from request data
- Version
Range - Version range for matching multiple versions
- Version
Router - Router for version-based API routing
- Versioned
Route Config - Configuration for a versioned route
- Versioned
Spec Builder - Builder for creating versioned OpenAPI specs
Enums§
- Version
Fallback - Fallback behavior when version is not found
- Version
Parse Error - Error type for version parsing
- Version
Source - Source from which version was extracted
- Version
Strategy - Strategy for extracting API version from requests
Traits§
- Version
Matcher - Matcher for version selection