Skip to main content

Crate anycms_core

Crate anycms_core 

Source
Expand description

anycms-core

A unified API response library supporting multiple Rust web frameworks.

§Features

  • actix (default): Support for actix-web framework
  • axum: Support for axum framework
  • validator: Integration with the validator crate for derive-based validation
  • tracing: Automatic error logging via the tracing crate
  • full: Enable all framework integrations
  • camel-case (default): Use camelCase for JSON field names
  • snake-case: Use snake_case for JSON field names

§Basic Usage

use anycms_core::ApiResult;
use serde::Serialize;

#[derive(Serialize)]
struct User {
    id: u32,
    name: String,
}

fn handle_request() -> ApiResult<User> {
    let user = User { id: 1, name: "Alice".to_string() };
    ApiResult::value(user)
}

§Business Error Code & Timestamp

use anycms_core::ApiResult;
use serde::Serialize;

#[derive(Serialize)]
struct User {
    id: u32,
    name: String,
}

fn handle_error() -> ApiResult<User> {
    ApiResult::fail("User not found")
        .with_code(404)
        .with_biz_code(10001)
        .with_current_timestamp()
}

fn handle_success() -> ApiResult<()> {
    ApiResult::ok()
        .with_message("Done")
        .with_biz_code(0)
        .with_timestamp(1700000000000)
}

§Error Handling

use anycms_core::ApiResult;

fn handle_error() -> ApiResult<String> {
    ApiResult::fail("Resource not found").with_code(404)
}

§Validation Errors

use anycms_core::{ApiResult, FieldError};

fn validate() -> ApiResult<String> {
    ApiResult::validation_errors(vec![
        FieldError::new("email", "invalid format"),
    ])
}

§Request Tracing

use anycms_core::ApiResult;

fn handler() -> ApiResult<String> {
    ApiResult::ok().with_trace_id("req-abc123")
}

Modules§

actix
Framework-specific integrations

Structs§

ApiResult
API response wrapper with unified structure
FieldError
A single field-level validation error
ResultPagination
Pagination metadata for list responses

Enums§

ErrorCode
Standard error codes for API responses
ResponseData
Response data wrapper that can hold either a single value or a list

Type Aliases§

DefaultResult
Type alias for standard Result with Box<dyn Error>.