Key Value API

توفّر واجهة Key Value API واجهات برمجة تطبيقات جديدة لإدارة البيانات المخصّصة لكائنات "الجهاز" و"الغرفة" و"التشغيل الآلي". يقتصر نطاق مراحل البيانات المخصّصة على مراحل العنصر المرتبطة به. على سبيل المثال، سيتم تلقائيًا حذف البيانات المخصّصة (مثل "غرفة ليلى") المرتبطة بعنصر "الغرفة" أو نقلها (بين البُنى) مع عنصر "الغرفة".

يركّز تغيير واجهة برمجة التطبيقات Swift على وحدة التحكّم 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 صفوف من أزواج المفاتيح والقيم.