Wrapped Animation Controller
API Contract
REST
/api/v1/animations
5 endpoints
GET
/api/v1/animations/api/v1/animations
List all registered animation controllers and their current state
Public
Response Example
{
"data": [
{
"name": "slide_entry",
"status": "idle",
"duration_ms": 600,
"current_value": 0,
"is_repeating": false
},
{
"name": "confetti_burst",
"status": "playing",
"duration_ms": 1200,
"current_value": 0.45,
"is_repeating": false
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 5
}
}
GET
/api/v1/animations/api/v1/animations/:name
Get state of a specific animation controller
Public
Response Example
{
"name": "slide_entry",
"status": "idle",
"duration_ms": 600,
"current_value": 0,
"is_repeating": false,
"curve": "easeInOut",
"lower_bound": 0,
"upper_bound": 1
}
POST
/api/v1/animations/api/v1/animations
Register a new animation controller
Public
Request Example
{
"name": "milestone_unlock",
"duration_ms": 800,
"curve": "elasticOut",
"is_repeating": false,
"lower_bound": 0,
"upper_bound": 1
}
Response Example
{
"name": "milestone_unlock",
"status": "idle",
"duration_ms": 800,
"current_value": 0,
"is_repeating": false,
"curve": "elasticOut",
"lower_bound": 0,
"upper_bound": 1
}
PUT
/api/v1/animations/api/v1/animations/:name
Update animation controller configuration or trigger a state change (play/pause/reset)
Public
Request Example
{
"action": "play",
"duration_ms": 800
}
Response Example
{
"name": "slide_entry",
"status": "playing",
"duration_ms": 800,
"current_value": 0,
"is_repeating": false
}
DELETE
/api/v1/animations/api/v1/animations/:name
Unregister and dispose an animation controller
Public
Response Example
{
"deleted": true,
"name": "slide_entry"
}