Key Value API

Key Value API, डिवाइस, कमरे, और ऑटोमेशन ऑब्जेक्ट के लिए नए कस्टम डेटा मैनेजमेंट एपीआई उपलब्ध कराता है. कस्टम डेटा का लाइफ़साइकल, उस ऑब्जेक्ट के लाइफ़साइकल से जुड़ा होता है जिससे वह जुड़ा होता है. उदाहरण के लिए, रूम ऑब्जेक्ट से जुड़ा कस्टम डेटा (जैसे, "Lucy's room") रूम ऑब्जेक्ट के साथ अपने-आप मिट जाएगा, ट्रांसफ़र हो जाएगा या एक स्ट्रक्चर से दूसरे स्ट्रक्चर में ट्रांसफ़र हो जाएगा.

Swift API में हुए बदलाव, मुख्य रूप से कंट्रोलर पर आधारित हैं. साथ ही, यह उन ऑब्जेक्ट के लिए एक्सटेंशन उपलब्ध कराता है जिनसे कस्टम ऐप्लिकेशन का डेटा जुड़ा होता है. इसमें स्टैंडर्ड क्रिएट, रीड, अपडेट, और डिलीट (सीआरयूडी) फ़ंक्शन शामिल होते हैं.CustomAppData

डिवाइस का उदाहरण

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)

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

ऑटोमेशन का उदाहरण

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 लाइनें हो सकती हैं.