Key Value API

Key Value API มี API การจัดการข้อมูลที่กำหนดเองใหม่สำหรับออบเจ็กต์อุปกรณ์ ห้อง และการทำงานอัตโนมัติ วงจรของข้อมูลที่กำหนดเองจะจำกัดขอบเขตไว้อย่างเคร่งครัดตามวงจรของออบเจ็กต์ที่เชื่อมโยงด้วย ตัวอย่างเช่น ข้อมูลที่กำหนดเอง (เช่น "ห้องของ Lucy") ที่เชื่อมโยงกับออบเจ็กต์ห้องจะถูกลบ ย้าย หรือโอน (ข้ามโครงสร้าง) โดยอัตโนมัติพร้อมกับออบเจ็กต์ห้อง

การเปลี่ยนแปลง Swift API จะเน้นที่ตัวควบคุม CustomAppData และให้ส่วนขยายแก่ออบเจ็กต์ที่เป็นของข้อมูลแอปพลิเคชันที่กำหนดเอง รวมถึงฟังก์ชันสร้าง อ่าน อัปเดต และลบ (CRUD) มาตรฐาน

ตัวอย่างอุปกรณ์

guard let device = home.devices.first(where: { $0.name == deviceName }) else { return }
var response = try await device.customAppData[key]
print("Before: \(response)")
try await device.customAppData.update(key: key, value: value)
response = try await device.customAppData[key]
print("After: \(response)")
try await device.customAppData.delete(key)

ตัวอย่างห้องพัก

guard let room = home.rooms.first(where: { $0.name == roomName }) else { return }
try await room.customAppData.update(key: "nickname", value: "Lucy's Room")
let response = try await room.customAppData["nickname"]
try await room.customAppData.delete("nickname")

ตัวอย่างการทำงานอัตโนมัติ

guard let automation = home.automations.first(where: { $0.name == automationName }) else { return }
var response = try await automation.customAppData[key]
print("Before: \(response)")
try await automation.customAppData.update(key: key, value: value)
response = try await automation.customAppData[key]
print("After: \(response)")
try await automation.customAppData.delete(key)

ข้อจำกัด

  • คีย์ต้องเป็นสตริงของอักขระ UTF-8 ที่ถูกต้อง โดยมีความยาวสูงสุด 128 อักขระ คีย์อาจเป็นสตริงว่างได้
  • ค่าต้องเป็นสตริงของอักขระ UTF-8 ที่ถูกต้อง โดยมีความยาวสูงสุด 1024 ตัว ค่าอาจเป็นสตริงว่างเปล่าก็ได้
  • ออบเจ็กต์แต่ละรายการมีคู่คีย์-ค่าได้ 10 แถว