Expand description
anycms-core
A unified API response library supporting multiple Rust web frameworks.
§Features
actix(default): Support for actix-web frameworkaxum: Support for axum frameworkfull: Enable all framework integrations
§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)
}§Error Handling
use anycms_core::{ApiResult, ApiError};
fn handle_error() -> ApiResult<String> {
ApiError::not_found("Resource not found").into()
}§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§
- ApiError
- Standard API error with error code and message
- ApiResult
- API response wrapper with unified structure
- Field
Error - A single field-level validation error
- Result
Pagination - Pagination metadata for list responses
Enums§
- AppError
- Generic application error that can represent any error type
- Error
Code - Standard error codes for API responses
- Response
Data - Response data wrapper that can hold either a single value or a list
Traits§
- Into
ApiResult - Helper trait for converting Results to ApiResults with custom error handling
Type Aliases§
- Anyhow
Result - Type alias for Result with anyhow::Error
- Default
Result - Type alias for standard Result with
Box<dyn Error> - Empty
Result - API result without any data payload