API Key Value

A API Key Value oferece novas APIs personalizadas de gerenciamento de dados para objetos de dispositivo, sala e automação. O ciclo de vida dos dados personalizados é estritamente limitado ao ciclo de vida do objeto a que está associado. Por exemplo, dados personalizados (como "Quarto da Lucy") associados a um objeto "Room" serão excluídos, movidos ou transferidos automaticamente (entre estruturas) com o objeto "Room".

A mudança na API Swift está centrada no controlador CustomAppData e fornece extensões aos objetos a que os dados do aplicativo personalizado pertencem, incluindo as funções padrão de criar, ler, atualizar e excluir (CRUD).

Exemplo de dispositivo

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)

Exemplo de sala

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

Exemplo de automação

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)

Restrições

  • A chave precisa ser uma string de caracteres UTF-8 válidos, com um tamanho máximo de 128. A chave pode ser uma string vazia.
  • O valor precisa ser uma string de caracteres UTF-8 válidos, com um comprimento máximo de 1.024. O valor pode ser uma string vazia.
  • Cada objeto pode ter 10 linhas de pares de chave-valor.