Share via


Como usar a API REST do IoT Central para gerenciar organizações

A API REST do IoT Central permite desenvolver aplicativos cliente que se integram aos aplicativos do IoT Central. Você pode usar a API REST para gerenciar organizações em seu aplicativo IoT Central.

Cada chamada à API REST do IoT Central requer um cabeçalho de autorização. Para saber mais, consulte Como autenticar e autorizar chamadas de API REST do IoT Central.

Para obter a documentação de referência da API REST do IoT Central, consulte Referência da API REST do Azure IoT Central.

Para saber mais sobre organizações no Aplicativo IoT Central, consulte Gerenciar organizações do IoT Central.

Gorjeta

Você pode usar o Postman para experimentar as chamadas de API REST descritas neste artigo. Faça o download da coleção IoT Central Postman e importe-a para o Postman. Na coleção, você precisará definir variáveis como o subdomínio do aplicativo e o token de administrador.

API REST das organizações

A API REST do IoT Central permite:

  • Adicionar uma organização ao seu aplicativo
  • Obter uma organização por ID
  • Atualizar uma organização em seu aplicativo
  • Obter uma lista das organizações no aplicativo
  • Excluir uma organização em seu aplicativo

Criar organizações

A API REST permite criar organizações em seu aplicativo IoT Central. Use a seguinte solicitação para criar uma organização em seu aplicativo:

PUT https://{your app subdomain}.azureiotcentral.com/api/organizations/{organizationId}?api-version=2022-07-31
  • organizationId - ID exclusivo da organização

O exemplo a seguir mostra um corpo de solicitação que adiciona uma organização a um aplicativo do IoT Central.

{
  "displayName": "Seattle",
}

O corpo da solicitação tem alguns campos obrigatórios:

  • @displayName: Nome para exibição da organização.

O corpo da solicitação tem alguns campos opcionais:

  • @parent: ID do pai da organização.

Se você não especificar um pai, a organização obterá a organização de nível superior padrão como pai.

A resposta a essa solicitação se parece com o exemplo a seguir:

{
  "id": "seattle",
  "displayName": "Seattle"
}

Você pode criar uma organização com hierarquia, por exemplo, você pode criar uma organização de vendas com uma organização pai.

O exemplo a seguir mostra um corpo de solicitação que adiciona uma organização a um aplicativo do IoT Central.

{
  "displayName": "Sales",
  "parent":"seattle"
}

A resposta a essa solicitação se parece com o exemplo a seguir:

{
  "id": "sales",
  "displayName": "Sales",
  "parent":"Seattle"
}

Obter uma organização

Use a seguinte solicitação para recuperar detalhes de uma organização individual do seu aplicativo:

GET https://{your app subdomain}.azureiotcentral.com/api/organizations/{organizationId}?api-version=2022-07-31

A resposta a essa solicitação se parece com o exemplo a seguir:

{
  "id": "seattle",
  "displayName": "Seattle",
  "parent": "washington"
}

Atualizar uma organização

Use a seguinte solicitação para atualizar os detalhes de uma organização em seu aplicativo:

PATCH https://{your app subdomain}.azureiotcentral.com/api/organizations/{organizationId}?api-version=2022-07-31

O exemplo a seguir mostra um corpo de solicitação que atualiza o pai da organização:

{
  "parent": "washington"
}

A resposta a essa solicitação se parece com o exemplo a seguir:

{
  "id": "seattle",
  "displayName": "Seattle Sales",
  "parent": "washington"
}

Listar organizações

Use a seguinte solicitação para recuperar uma lista de organizações do seu aplicativo:

GET https://{your app subdomain}.azureiotcentral.com/api/organizations?api-version=2022-07-31

A resposta a essa solicitação se parece com o exemplo a seguir.

{
    "value": [
        {
            "id": "washington",
            "displayName": "Washington"
        },
        {
            "id": "redmond",
            "displayName": "Redmond"
        },
        {
            "id": "bellevue",
            "displayName": "Bellevue"
        },
        {
            "id": "spokane",
            "displayName": "Spokane",
            "parent": "washington"
        },
        {
            "id": "seattle",
            "displayName": "Seattle",
            "parent": "washington"
        }
    ]
}

As organizações Washington, Redmond e Bellevue têm automaticamente a organização de nível superior padrão do aplicativo como pai.

Excluir uma organização

Use a seguinte solicitação para excluir uma organização:

DELETE https://{your app subdomain}.azureiotcentral.com/api/organizations/{organizationId}?api-version=2022-07-31

Organizações de uso

Use organizações para gerenciar o acesso a recursos em seu aplicativo.

Gerir funções

A API REST permite listar as funções definidas em seu aplicativo IoT Central. Use a solicitação a seguir para recuperar uma lista de IDs de função de aplicativo e de função da organização do seu aplicativo. Para saber mais, consulte Como gerenciar organizações do IoT Central:

GET https://{your app subdomain}.azureiotcentral.com/api/roles?api-version=2022-07-31

A resposta a essa solicitação se parece com o exemplo a seguir que inclui as IDs de função de aplicativo e de função da organização.

{
    "value": [
        {
            "id": "ca310b8d-2f4a-44e0-a36e-957c202cd8d4",
            "displayName": "Administrator"
        },
        {
            "id": "ae2c9854-393b-4f97-8c42-479d70ce626e",
            "displayName": "Operator"
        },
        {
            "id": "344138e9-8de4-4497-8c54-5237e96d6aaf",
            "displayName": "Builder"
        },
        {
            "id": "c495eb57-eb18-489e-9802-62c474e5645c",
            "displayName": "Org Admin"
        },
        {
            "id": "b4935647-30e4-4ed3-9074-dcac66c2f8ef",
            "displayName": "Org Operator"
        },
        {
            "id": "84cc62c1-dabe-49d3-b16e-8b291232b285",
            "displayName": "Org Viewer"
        }
    ]
}

Criar um token de API anexado a um nó em uma hierarquia da organização

Use a seguinte solicitação para criar Criar um token de API anexado a um nó em uma hierarquia da organização em seu aplicativo:

PUT https://{your app subdomain}.azureiotcentral.com/api/apiTokens/{tokenId}?api-version=2022-07-31
  • tokenId - ID exclusivo do token

O exemplo a seguir mostra um corpo de solicitação que cria um token de API para a organização seattle em um aplicativo IoT Central.

{
    "roles": [
        {
            "role": "84cc62c1-dabe-49d3-b16e-8b291232b285",
            "organization": "seattle"
        }
    ]
}

O corpo da solicitação tem alguns campos obrigatórios:

Name Description
função ID de uma das funções da organização
organização ID da organização

A resposta a essa solicitação se parece com o exemplo a seguir:

{
    "id": "token1",
    "roles": [
        {
            "role": "84cc62c1-dabe-49d3-b16e-8b291232b285",
            "organization": "seattle"
        }
    ],
    "expiry": "2023-07-07T17:05:08.407Z",
    "token": "SharedAccessSignature sr=8a0617**********************4c0d71c&sig=3RyX69G4%2FBZZnG0LXOjQv*************e8s%3D&skn=token1&se=1688749508407"
}

Associar um usuário a um nó em uma hierarquia da organização

Use a solicitação a seguir para criar e associar um usuário a um nó em uma hierarquia da organização em seu aplicativo. O ID e o e-mail devem ser exclusivos no aplicativo:

PUT https://{your app subdomain}.azureiotcentral.com/api/users/user-001?api-version=2022-07-31

No corpo da solicitação a seguir, o é a ID de uma das funções da organização e organization é a role ID da organização

{
  "id": "user-001",
  "type": "email",
    "roles": [
        {
            "role": "84cc62c1-dabe-49d3-b16e-8b291232b285",
            "organization": "seattle"
        }
    ],
    "email": "user5@contoso.com"

}

A resposta a essa solicitação se parece com o exemplo a seguir. O valor da função identifica a qual função o usuário está associado:

{
    "id": "user-001",
    "type": "email",
    "roles": [
        {
            "role": "84cc62c1-dabe-49d3-b16e-8b291232b285",
            "organization": "seattle"
        }
    ],
    "email": "user5@contoso.com"
}

Adicionar e associar um dispositivo a uma organização

Use a seguinte solicitação para associar um novo dispositivo a uma organização

PUT https://{your app subdomain}.azureiotcentral.com/api/devices/{deviceId}?api-version=2022-07-31

O exemplo a seguir mostra um corpo de solicitação que adiciona um dispositivo para um modelo de dispositivo. Você pode obter os template detalhes na página de modelos de dispositivo na interface do usuário do aplicativo IoT Central.

{
    "displayName": "CheckoutThermostat",
    "template": "dtmi:contoso:Thermostat;1",
    "simulated": true,
    "enabled": true,
    "organizations": [
        "seattle"
    ]
}

O corpo da solicitação tem alguns campos obrigatórios:

  • @displayName: Nome de exibição do dispositivo.
  • @enabled: declara que este objeto é uma interface.
  • @etag: ETag usado para evitar conflitos em atualizações de dispositivos.
  • simulated: O dispositivo é simulado?
  • template : A definição de modelo de dispositivo para o dispositivo.
  • organizations : Lista de IDs da organização da qual o dispositivo faz parte. Atualmente, você só pode associar um dispositivo a uma única organização.

A resposta a essa solicitação se parece com o exemplo a seguir:

{
    "id": "thermostat1",
    "etag": "eyJoZWFkZXIiOiJcIjI0MDAwYTdkLTAwMDAtMDMwMC0wMDAwLTYxYjgxZDIwMDAwMFwiIiwiZGF0YSI6IlwiMzMwMDQ1M2EtMDAwMC0wMzAwLTAwMDAtNjFiODFkMjAwMDAwXCIifQ",
    "displayName": "CheckoutThermostat",
    "simulated": true,
    "provisioned": false,
    "template": "dtmi:contoso:Thermostat;1",
    "enabled": true,
   "organizations": [
    "seattle"
  ]

}

Adicionar e associar um grupo de dispositivos a uma organização

Use a solicitação a seguir para criar e associar um novo grupo de dispositivos a uma organização.

PUT https://{your app subdomain}.azureiotcentral.com/api/deviceGroups/{deviceGroupId}?api-version=2022-07-31

Ao criar um grupo de dispositivos, você define um filter que seleciona os dispositivos a serem adicionados ao grupo. A filter identifica um modelo de dispositivo e todas as propriedades a serem correspondidas. O exemplo a seguir cria um grupo de dispositivos que contém todos os dispositivos associados ao dtmi:modelDefinition:dtdlv2 modelo onde a provisioned propriedade é true.

{
  "displayName": "Device group 1",
  "description": "Custom device group.",
  "filter": "SELECT * FROM devices WHERE $template = \"dtmi:modelDefinition:dtdlv2\" AND $provisioned = true",
  "organizations": [
    "seattle"
  ]
}

O corpo da solicitação tem alguns campos obrigatórios:

  • @displayName: Nome para exibição do grupo de dispositivos.
  • @filter: Consulta definindo quais dispositivos devem estar neste grupo.
  • description: Breve resumo do grupo de dispositivos.
  • organizations : Lista de IDs da organização da qual o dispositivo faz parte. Atualmente, você só pode associar um dispositivo a uma única organização.

A resposta a essa solicitação se parece com o exemplo a seguir:

{
  "id": "group1",
  "displayName": "Device group 1",
  "description": "Custom device group.",
  "filter": "SELECT * FROM devices WHERE $template = \"dtmi:modelDefinition:dtdlv2\" AND $provisioned = true",
  "organizations": [
    "seattle"
  ]
}

Próximos passos

Agora que você aprendeu como gerenciar organizações com a API REST, uma próxima etapa sugerida é Como usar a API REST do IoT Central para gerenciar exportações de dados.