Skip to main content

Module versioning

Module versioning 

Source
Expand description

API versioning patterns.

Supports three strategies for API version negotiation:

  • URL prefix: /v1/users, /v2/users
  • Header: X-API-Version: 1
  • Accept header: application/vnd.myapi.v1+json

§Example

use fastapi_core::versioning::{ApiVersion, VersionStrategy, VersionConfig};

let config = VersionConfig::new()
    .strategy(VersionStrategy::UrlPrefix)
    .current(2)
    .supported(&[1, 2])
    .deprecated(&[1]);

let v = ApiVersion::from_path("/v1/users");
assert_eq!(v, Some(ApiVersion(1)));
assert!(config.is_deprecated(&ApiVersion(1)));

Structs§

ApiVersion
An API version number.
VersionConfig
Configuration for API versioning.

Enums§

VersionStrategy
Strategy for extracting the API version from a request.