Example 1: User Registration Flow
// 1. Create user
const response = await fetch ( '/api/objectql' , {
method : 'POST' ,
headers : { 'Content-Type' : 'application/json' } ,
body : JSON . stringify ( {
op : 'create' ,
object : 'users' ,
args : {
email : 'alice@example.com' ,
name : 'Alice' ,
password_hash : 'hashed_password'
}
} )
} ) ;
const user = await response . json ( ) ;
// { id: 'user_123', email: 'alice@example.com', '@type': 'users', ... }
// 2. Send verification email (triggered by hook)
// 3. User verifies email via action
await fetch ( '/api/objectql' , {
method : 'POST' ,
headers : { 'Content-Type' : 'application/json' } ,
body : JSON . stringify ( {
op : 'action' ,
object : 'users' ,
args : {
action : 'verify_email' ,
id : user . id ,
input : {
token : 'verification_token_xyz'
}
}
} )
} ) ;
Example 2: Dashboard Analytics
// Get sales metrics for dashboard
const response = await fetch ( '/api/objectql' , {
method : 'POST' ,
headers : {
'Content-Type' : 'application/json' ,
'Authorization' : 'Bearer ' + jwt_token
} ,
body : JSON . stringify ( {
op : 'find' ,
object : 'orders' ,
ai_context : {
intent : "Calculate monthly sales by category" ,
use_case : "Executive dashboard"
} ,
args : {
groupBy : [ 'category' , 'month' ] ,
aggregate : [
{ func : 'sum' , field : 'amount' , alias : 'revenue' } ,
{ func : 'count' , field : 'id' , alias : 'order_count' } ,
{ func : 'avg' , field : 'amount' , alias : 'avg_order_value' }
] ,
filters : [
[ 'status' , '=' , 'paid' ] ,
'and' ,
[ 'created_at' , '>=' , '2024-01-01' ]
] ,
sort : [ [ 'month' , 'asc' ] , [ 'revenue' , 'desc' ] ]
}
} )
} ) ;
const { items } = await response . json ( ) ;
// [
// { category: 'Electronics', month: '2024-01', revenue: 50000, order_count: 120, avg_order_value: 416.67 },
// { category: 'Clothing', month: '2024-01', revenue: 30000, order_count: 250, avg_order_value: 120.00 },
// ...
// ]
Example 3: Complex Search with Relations
// Find customers with high-value recent orders
const response = await fetch ( '/api/objectql' , {
method : 'POST' ,
headers : {
'Content-Type' : 'application/json' ,
'Authorization' : 'Bearer ' + jwt_token
} ,
body : JSON . stringify ( {
op : 'find' ,
object : 'customers' ,
args : {
fields : [ 'name' , 'email' , 'vip_level' , 'total_spent' ] ,
filters : [
[ 'vip_level' , '>=' , 'gold' ] ,
'and' ,
[ 'is_active' , '=' , true ]
] ,
expand : {
orders : {
fields : [ 'order_no' , 'amount' , 'status' ] ,
filters : [
[ 'created_at' , '>' , '2024-01-01' ] ,
'and' ,
[ 'amount' , '>' , 1000 ]
] ,
sort : [ [ 'created_at' , 'desc' ] ] ,
top : 5
}
} ,
sort : [ [ 'total_spent' , 'desc' ] ] ,
top : 20
}
} )
} ) ;
Example 4: Bulk Operations
// Create multiple records in one request
const response = await fetch ( '/api/objectql' , {
method : 'POST' ,
headers : { 'Content-Type' : 'application/json' } ,
body : JSON . stringify ( {
op : 'action' ,
object : 'tasks' ,
args : {
action : 'bulk_create' ,
input : {
items : [
{ name : 'Task 1' , priority : 'high' } ,
{ name : 'Task 2' , priority : 'medium' }
]
}
}
} )
} ) ;