ออบเจ็กต์แบบกำหนดเอง 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" }
# ]
# } }แสดงรายการ กรอง จัดเรียง และแบ่งหน้า
GET /api/v2/objects/{type}/records ส่งคืนระเบียนสำหรับวัตถุ (ขอบเขต 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 }สร้าง อัปเดต และลบ
การเขียนจำเป็นต้องมีขอบเขต 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_..."