fandwill-vo 0.5.0

Serde, garde, and utoipa value objects for the Fandwill platform API.
Documentation

fandwill-vo

Value objects for the Fandwill platform HTTP API: shared request/response types with serde, validation via garde, and OpenAPI schemas via utoipa.

Use the same crate version in the Fandwill backend, future Rust SDK, and any Dart (or other) clients generated from the API contract.

Installation

[dependencies]
fandwill-vo = "0.5"

Serde only (no validation or OpenAPI derives):

fandwill-vo = { version = "0.5", default-features = false }
Feature Default Description
garde yes Field validation via garde::Validate
utoipa yes OpenAPI schemas via utoipa::ToSchema

Modules

Module Types (examples)
auth SignUpVO, SignInVO, SignUpResponseVO, SignInResponseVO
collections AddToCollectionRequest, CollectionEntryVO
listings ListingsVO, ListingCapabilitiesVO, UpdateListingCapabilitiesVO, ListingsQuery
pagination PaginationParams, PageInfo, PagedResponse<T>
users UserVO, UpdateUserProfileVO, UserCapabilitiesVO
resources ResourceVO, ResourceUploadVO, CreateResourceVO
reviews CreateReviewVO, ReviewReplyVO, ReviewsVO, ReviewFilter
meta RootResponse, RootLimits
notifications NotificationVO, NotificationPayloadVO, NotificationsQuery

Request types may derive garde::Validate; API types used in OpenAPI derive utoipa::ToSchema.

Example

use fandwill_vo::auth::SignUpVO;
use garde::Validate;

fn main() -> Result<(), garde::Report> {
    let body = SignUpVO {
        email: "user@example.com".into(),
        password: "password123".into(),
        nickname: Some("TestUser".into()),
    };
    body.validate()?;
    Ok(())
}

Stability

The crate is currently in the 0.x series. Minor releases may include contract changes while the HTTP API stabilizes; read the changelog before upgrading.

Workspace

Part of the Fandwill Rust SDK repository.

License

Licensed under either of Apache License, Version 2.0 or MIT license, at your option. See LICENSE-APACHE and LICENSE-MIT in the repository.

Trademark

Fandwill is a brand of Furlink. This license does not grant permission to use Fandwill trademarks, logos, or branding except as needed to describe interoperability with the Fandwill platform. Do not imply endorsement or an official relationship without written permission from Furlink.