SocialHub.AI
开发者中心 · 开放扩展性

自定义对象 API

工作区可以使用字段、记录、列表/表单 UI 和分段来定义自己的结构化业务对象(维修作业、预约、投诉),所有这些都无需代码。此 API 允许您的集成读取这些对象的架构并读取或写入它们的记录。 该对象首先在应用内定义; API 与已经存在的东西相反。

第一步——探索

列出对象类型,然后读取其架构

使用以下方式进行身份验证 Bearer fl_live_ 关键持有人 objects:read. GET /api/v2/objects 返回 object 此工作区公开的类型——仅 已出版 API-可见的 返回对象;草稿和 API隐藏的物体永远不会泄露信息。 GET /api/v2/objects/{type} 返回一个 object它具有自描述的字段架构(键、类型、选项、必填),因此您可以渲染表单或映射记录而无需硬编码任何内容。未知、草稿、隐藏或跨工作区类型将返回 404.

# what object types exist here?
curl https://flash.socialhub.ai/api/v2/objects \
  -H "Authorization: Bearer fl_live_..."
# { "data": [ { "type": "repair_jobs", "label": "Repair Jobs", ... } ] }

# what does one look like?
curl https://flash.socialhub.ai/api/v2/objects/repair_jobs \
  -H "Authorization: Bearer fl_live_..."
# { "data": {
#     "type": "repair_jobs", "label": "Repair Jobs",
#     "fields": [
#       { "key": "cf_status",  "type": "enum", "required": true,
#         "options": ["Received","In Progress","Completed"] },
#       { "key": "cf_item",    "type": "text" },
#       { "key": "member_ref", "type": "member_ref" }
#     ]
# } }
步骤 2 — 读取记录

列表、筛选、排序和分页

GET /api/v2/objects/{type}/records 返回 object 的记录(范围 objects:read)。页面包含 limit(最多 200)和 offset;使用 sortBy(created_desc、created_asc、updated_desc、title_asc)进行排序;使用 search 进行自由文本排序;使用 memberId 筛选特定成员;使用 f_<fieldKey>=<value> 筛选任意字段。单个记录为 GET /api/v2/objects/{type}/records/{recordId}。

curl "https://flash.socialhub.ai/api/v2/objects/repair_jobs/records\
?f_cf_status=In%20Progress&sortBy=updated_desc&limit=50" \
  -H "Authorization: Bearer fl_live_..."

# { "data": [ { "id": "rec_...", "data": { "cf_status": "In Progress",
#               "cf_item": "Sole replacement", "member_ref": "mbr_..." } } ],
#   "total": 12 }
步骤 3 — 写入记录

创建、更新和删除

写入需要 objects:write 范围。 data 对象根据对象的字段架构进行验证 - 必填字段、类型、枚举选项和成员引用均经过检查,并且拒绝未知键。每次写入之前都会有一个故障关闭的、每个键的写入速率保护,因此泄漏的键不会淹没表。

# create
curl -X POST https://flash.socialhub.ai/api/v2/objects/repair_jobs/records \
  -H "Authorization: Bearer fl_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "data": {
    "cf_status": "Received",
    "cf_item": "Sole replacement",
    "member_ref": "mbr_..."
  } }'
# 201 { "data": { "id": "rec_...", "data": { ... } } }

PATCH …/records/{recordId} 默认是 部分更新(逐字段合并,因此并发补丁不会相互覆盖)。发送字段为null可将其删除,发送字段为{ "replace": true }可覆盖整个记录。DELETE …/records/{recordId}表示软删除。

# partial update — only touch cf_status
curl -X PATCH https://flash.socialhub.ai/api/v2/objects/repair_jobs/records/rec_... \
  -H "Authorization: Bearer fl_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "data": { "cf_status": "Completed" } }'

# delete
curl -X DELETE https://flash.socialhub.ai/api/v2/objects/repair_jobs/records/rec_... \
  -H "Authorization: Bearer fl_live_..."