Key Value API

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

Perubahan Swift API berpusat pada pengontrol CustomAppData dan menyediakan ekstensi untuk objek yang menjadi bagian dari data aplikasi kustom, serta menyertakan fungsi buat, baca, perbarui, dan hapus (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 Room

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 1.024. Nilainya dapat berupa string kosong.
  • Setiap objek dapat memiliki 10 baris pasangan nilai kunci.