API Key Value

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

A mudança na API Swift se concentra no controlador CustomAppData e fornece extensões para os objetos aos quais os dados do aplicativo personalizado pertencem, além de incluir as funções padrão de criação, leitura, atualização e exclusão (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 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")

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 no máximo 128 caracteres. 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.