Key Value API

Key Value API menyediakan API pengelolaan data kustom baru untuk objek Perangkat, Ruangan, dan Otomatisasi. Siklus proses data kustom dibatasi secara ketat ke siklus proses objek yang terkait dengannya. Misalnya, data kustom (seperti "Ruangan Lucy") yang terkait dengan objek Ruangan akan otomatis dihapus, dipindahkan, atau ditransfer (di seluruh struktur) dengan objek Ruangan.

Perubahan Swift API berpusat pada CustomAppData pengontrol dan menyediakan ekstensi ke objek tempat data aplikasi kustom berada, serta menyertakan fungsi pembuatan, pembacaan, pembaruan, dan penghapusan (CRUD) standar.

Contoh perangkat

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)

Contoh ruangan

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")

Contoh otomatisasi

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)

Pembatasan

  • Kunci harus berupa string karakter UTF-8 yang valid, dengan panjang maksimum 128. Kunci dapat berupa string kosong.
  • Nilai harus berupa string karakter UTF-8 yang valid, dengan panjang maksimum 1024. Nilai dapat berupa string kosong.
  • Setiap objek dapat memiliki 10 baris pasangan nilai kunci.