pub enum VersionStrategy {
Path {
pattern: String,
},
Header {
name: String,
},
Query {
param: String,
},
Accept {
pattern: String,
},
Custom {
name: String,
},
}Expand description
Strategy for extracting API version from requests
Variants§
Path
Extract version from URL path (e.g., /v1/users)
The pattern should include {version} placeholder
Example: “/v{version}/” or “/{version}/”
Header
Extract version from HTTP header
Example: X-API-Version: 1.0
Query
Extract version from query parameter
Example: ?version=1.0 or ?api-version=1.0
Accept
Extract version from Accept header media type
Example: Accept: application/vnd.api.v1+json
Fields
Custom
Use a custom extractor function
Uses a named custom extractor registered with the router
Implementations§
Source§impl VersionStrategy
impl VersionStrategy
Sourcepub fn path_with_pattern(pattern: impl Into<String>) -> Self
pub fn path_with_pattern(pattern: impl Into<String>) -> Self
Create a path strategy with custom pattern
Sourcepub fn header() -> Self
pub fn header() -> Self
Create a header-based versioning strategy
Default header: “X-API-Version”
Sourcepub fn header_with_name(name: impl Into<String>) -> Self
pub fn header_with_name(name: impl Into<String>) -> Self
Create a header strategy with custom header name
Sourcepub fn query() -> Self
pub fn query() -> Self
Create a query parameter versioning strategy
Default parameter: “version”
Sourcepub fn query_with_param(param: impl Into<String>) -> Self
pub fn query_with_param(param: impl Into<String>) -> Self
Create a query strategy with custom parameter name
Sourcepub fn accept() -> Self
pub fn accept() -> Self
Create an Accept header versioning strategy
Default pattern: “application/vnd.api.v{version}+json”
Sourcepub fn accept_with_pattern(pattern: impl Into<String>) -> Self
pub fn accept_with_pattern(pattern: impl Into<String>) -> Self
Create an Accept strategy with custom pattern
Trait Implementations§
Source§impl Clone for VersionStrategy
impl Clone for VersionStrategy
Source§fn clone(&self) -> VersionStrategy
fn clone(&self) -> VersionStrategy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more