Skip to main content

ApiResource

Derive Macro ApiResource 

Source
#[derive(ApiResource)]
{
    // Attributes available to this derive:
    #[resource]
}
Expand description

Derive macro for generating Resource trait implementation from struct annotations

Supports struct-level and field-level #[resource(...)] attributes:

  • #[resource(model = "path::to::Model")] (struct-level) — generates From<Model> impl
  • #[resource(rename = "new_name")] (field-level) — use a different key in JSON output
  • #[resource(skip)] (field-level) — exclude field from JSON output

§Example

use ferro::ApiResource;

#[derive(ApiResource)]
#[resource(model = "entities::users::Model")]
pub struct UserResource {
    pub id: i32,
    pub name: String,
    #[resource(rename = "member_since")]
    pub created_at: String,
    #[resource(skip)]
    pub password_hash: String,
}