pub struct VersionRouter { /* private fields */ }Expand description
Router for version-based API routing
This router manages different versions of your API and can:
- Route requests to the appropriate version handler
- Generate separate OpenAPI specs for each version
- Handle version deprecation and sunset
Implementations§
Source§impl VersionRouter
impl VersionRouter
Sourcepub fn strategy(self, strategy: VersionStrategy) -> Self
pub fn strategy(self, strategy: VersionStrategy) -> Self
Set the versioning strategy
Sourcepub fn strategies(self, strategies: Vec<VersionStrategy>) -> Self
pub fn strategies(self, strategies: Vec<VersionStrategy>) -> Self
Add multiple strategies (tried in order)
Sourcepub fn default_version(self, version: ApiVersion) -> Self
pub fn default_version(self, version: ApiVersion) -> Self
Set the default version
Sourcepub fn fallback(self, behavior: VersionFallback) -> Self
pub fn fallback(self, behavior: VersionFallback) -> Self
Set the fallback behavior
Sourcepub fn version(self, version: ApiVersion, config: VersionedRouteConfig) -> Self
pub fn version(self, version: ApiVersion, config: VersionedRouteConfig) -> Self
Register a version
Sourcepub fn version_with_spec_31(
self,
version: ApiVersion,
config: VersionedRouteConfig,
spec: OpenApi31Spec,
) -> Self
pub fn version_with_spec_31( self, version: ApiVersion, config: VersionedRouteConfig, spec: OpenApi31Spec, ) -> Self
Register a version with OpenAPI 3.1 spec
Sourcepub fn version_with_spec_30(
self,
version: ApiVersion,
config: VersionedRouteConfig,
spec: OpenApiSpec,
) -> Self
pub fn version_with_spec_30( self, version: ApiVersion, config: VersionedRouteConfig, spec: OpenApiSpec, ) -> Self
Register a version with OpenAPI 3.0 spec
Sourcepub fn registered_versions(&self) -> Vec<ApiVersion>
pub fn registered_versions(&self) -> Vec<ApiVersion>
Get all registered versions
Sourcepub fn latest_version(&self) -> Option<ApiVersion>
pub fn latest_version(&self) -> Option<ApiVersion>
Get the latest registered version
Sourcepub fn resolve_from_path(&self, path: &str) -> ResolvedVersion
pub fn resolve_from_path(&self, path: &str) -> ResolvedVersion
Resolve a version from a path
Sourcepub fn resolve_from_headers(
&self,
headers: &HashMap<String, String>,
) -> ResolvedVersion
pub fn resolve_from_headers( &self, headers: &HashMap<String, String>, ) -> ResolvedVersion
Resolve a version from headers
Sourcepub fn resolve_from_query(&self, query: &str) -> ResolvedVersion
pub fn resolve_from_query(&self, query: &str) -> ResolvedVersion
Resolve a version from query string
Sourcepub fn get_spec_31(&self, version: &ApiVersion) -> Option<&OpenApi31Spec>
pub fn get_spec_31(&self, version: &ApiVersion) -> Option<&OpenApi31Spec>
Get OpenAPI 3.1 spec for a version
Sourcepub fn get_spec_30(&self, version: &ApiVersion) -> Option<&OpenApiSpec>
pub fn get_spec_30(&self, version: &ApiVersion) -> Option<&OpenApiSpec>
Get OpenAPI 3.0 spec for a version
Sourcepub fn strip_version(&self, path: &str) -> String
pub fn strip_version(&self, path: &str) -> String
Strip version from path
Sourcepub fn is_deprecated(&self, version: &ApiVersion) -> bool
pub fn is_deprecated(&self, version: &ApiVersion) -> bool
Check if a version is deprecated
Sourcepub fn get_deprecation_info(
&self,
version: &ApiVersion,
) -> Option<DeprecationInfo>
pub fn get_deprecation_info( &self, version: &ApiVersion, ) -> Option<DeprecationInfo>
Get deprecation info for a version
Trait Implementations§
Source§impl Clone for VersionRouter
impl Clone for VersionRouter
Source§fn clone(&self) -> VersionRouter
fn clone(&self) -> VersionRouter
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for VersionRouter
impl Debug for VersionRouter
Auto Trait Implementations§
impl Freeze for VersionRouter
impl RefUnwindSafe for VersionRouter
impl Send for VersionRouter
impl Sync for VersionRouter
impl Unpin for VersionRouter
impl UnwindSafe for VersionRouter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more