Skip to main content

Module version

Module version 

Source
Expand description

API versioning types.

ApiVersion supports three versioning schemes used in practice:

  • Simple integer (v1, v2, …) — internal/private APIs
  • Semver (1.2.3) — SDK-coupled APIs
  • Date-based (2024-06-01) — Stripe/Cloudflare style public APIs

§Example

use api_bones::version::ApiVersion;
use core::str::FromStr;

let v: ApiVersion = "v3".parse().unwrap();
assert_eq!(v.to_string(), "v3");

let v: ApiVersion = "1.2.3".parse().unwrap();
assert_eq!(v.to_string(), "1.2.3");

let v: ApiVersion = "2024-06-01".parse().unwrap();
assert_eq!(v.to_string(), "2024-06-01");

Structs§

ApiVersionParseError
Error returned when an ApiVersion string cannot be parsed.
SemverTriple
Semantic version triple (major, minor, patch).

Enums§

ApiVersion
An API version that supports three common schemes.

Constants§

ACCEPT_VERSION
Header name for the requested API version (Accept-Version).
CONTENT_VERSION
Header name for the version the response was produced with (Content-Version).