Module versioning

Module versioning 

Source
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§

AnyVersionMatcher
Matcher that accepts any version
ApiVersion
API version using semantic versioning
DeprecationInfo
Deprecation information
ExtractedVersion
Result of version extraction
MajorVersionMatcher
Matcher for major version only
ResolvedVersion
Result of version resolution
VersionExtractor
Version extractor that can extract versions from request data
VersionRange
Version range for matching multiple versions
VersionRouter
Router for version-based API routing
VersionedRouteConfig
Configuration for a versioned route
VersionedSpecBuilder
Builder for creating versioned OpenAPI specs

Enums§

VersionFallback
Fallback behavior when version is not found
VersionParseError
Error type for version parsing
VersionSource
Source from which version was extracted
VersionStrategy
Strategy for extracting API version from requests

Traits§

VersionMatcher
Matcher for version selection