directoryObject: delta

Namespace: microsoft.graph

Obtenha objetos de diretório recém-criados, atualizados ou excluídos sem executar uma leitura completa de toda a coleção directoryObject. Para obter mais informações sobre a função delta, consulte Usar a consulta delta para acompanhar as alterações nos dados do Microsoft Graph para obter detalhes.

Essa API está disponível nas seguintes implantações nacionais de nuvem.

Serviço global Governo dos EUA L4 GOVERNO DOS EUA L5 (DOD) China operada pela 21Vianet

Permissões

A tabela a seguir mostra a permissão menos privilegiada exigida por cada tipo de recurso ao chamar essa API. Para saber mais, incluindo como escolher permissões, confira Permissões.

Recurso com suporte Delegada (conta corporativa ou de estudante) Application Delegado (conta pessoal da Microsoft)
application Application.Read.All Application.Read.All Sem suporte
administrativeUnit AdministrativeUnit.Read.All AdministrativeUnit.Read.All Sem suporte
appRoleAssignment User.Read.All User.Read.All Sem suporte
device Device.Read.All Device.Read.All Sem suporte
directoryRole RoleManagement.Read.Directory RoleManagement.Read.Directory Sem suporte
grupo Group.Read.All Group.Read.All Sem suporte
orgContact OrgContact.Read.All OrgContact.Read.All Sem suporte
servicePrincipal Application.Read.All Application.Read.All Incompatível
user User.Read.All User.Read.All Sem suporte

Solicitação HTTP

Acompanhe as alterações de uma coleção de um tipo de objeto de diretório.

GET /directoryObjects/delta?$filter=isof('microsoft.graph.application')
GET /directoryObjects/delta?$filter=isof('microsoft.graph.administrativeUnit')
GET /directoryObjects/delta?$filter=isof('microsoft.graph.appRoleAssignment') or isof('microsoft.graph.user')
GET /directoryObjects/delta?$filter=isof('microsoft.graph.device')
GET /directoryObjects/delta?$filter=isof('microsoft.graph.directoryRole')
GET /directoryObjects/delta?$filter=isof('microsoft.graph.group')
GET /directoryObjects/delta?$filter=isof('microsoft.graph.orgContact')
GET /directoryObjects/delta?$filter=isof('microsoft.graph.servicePrincipal')
GET /directoryObjects/delta?$filter=isof('microsoft.graph.user')

Acompanhe as alterações de um objeto de diretório. Essa solicitação não tem suporte no appRoleAssignment recurso.

GET /directoryObjects/delta?$filter=id eq '{id}'

Parâmetros de consulta OData

Esse método dá suporte a parâmetros opcionais de consulta OData para ajudar a personalizar a resposta.

  • Você pode usar um parâmetro de consulta $select como em qualquer solicitação GET para especificar somente as propriedades necessárias para obter melhor desempenho. A propriedade id sempre será retornada.
  • Ao filtrar vários objetos, por exemplo, /directoryObjects/delta/?$filter= id eq '477e9fc6-5de7-4406-bb2a-7e5c83c9ffff' or id eq '004d6a07-fe70-4b92-add5-e6e37b8affff', há um limite de 50 expressões de filtro.
  • Você pode combinar as $filter sintaxes. Por exemplo, $filter=isof('{resource type}') or id eq '{id}'. Isso fornece uma interseção de objetos especificada pela correspondência {resource type} e pelo tipo de recurso de {id}.

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type application/json
Preferir return=minimal

Especificar esse cabeçalho com uma solicitação que usa um @odata.deltaLink retorna apenas as propriedades do objeto que foram alteradas desde a última rodada. Opcional.

Corpo da solicitação

Não forneça um corpo de solicitação para esse método.

Resposta

Se for bem-sucedido, esse método retornará 200 OK o código de resposta e o objeto de coleção directoryObject no corpo da resposta. A resposta também inclui um token de estado que é uma @odata.nextLink URL ou uma @odata.deltaLink URL.

  • Se uma URL @odata.nextLink for retornada:

    • Isso indica que há mais páginas de dados a serem recuperadas na sessão. O aplicativo continua fazendo solicitações usando a @odata.nextLink URL até que uma @odata.deltaLink URL seja incluída na resposta.
    • A resposta inclui o mesmo conjunto de propriedades como na solicitação de consulta delta inicial. Assim você pode capturar o estado atual de todos os objetos ao iniciar o ciclo de delta.
  • Se uma URL @odata.deltaLink for retornada:

    • Isso indica que não há mais dados sobre o estado existente do recurso a ser retornado. Salve e use a URL @odata.deltaLink para saber mais sobre alterações ao recurso na próxima fase.
    • Você pode especificar o cabeçalho Prefer:return=minimal para incluir somente os valores de resposta das propriedades que foram alteradas desde a hora em que o @odata.deltaLink foi emitido.

Padrão: retornar as mesmas propriedades de uma solicitação delta inicial

Por padrão, as solicitações usando @odata.deltaLink ou @odata.nextLink retornam as mesmas propriedades selecionadas na consulta delta inicial das seguintes maneiras:

  • Se a propriedade foi alterada, o novo valor será incluído na resposta. Isso inclui propriedades definidas com valor nulo.
  • Se a propriedade não tiver sido alterada, o valor antigo será incluído na resposta.
  • Se a propriedade nunca foi definida anteriormente, de nenhuma forma será incluída na resposta.

Observação: com esse comportamento, ao verificar a resposta, não será possível dizer se uma propriedade foi alterada ou não. Além disso, as respostas delta tendem a ser grandes porque contêm todos os valores de propriedade - conforme mostrado no Exemplo 3.

Alternativa: retornar somente as propriedades alteradas

Adicionar um cabeçalho de solicitação opcional prefer:return=minimal resulta no seguinte comportamento:

  • Se a propriedade foi alterada, o novo valor será incluído na resposta. Isso inclui propriedades definidas com valor nulo.
  • Se a propriedade não tiver sido alterada, a propriedade não será incluída na resposta. Isso é diferente do comportamento padrão.

Observação: é possível adicionar o cabeçalho a uma solicitação @odata.deltaLink a qualquer momento no ciclo de delta. O cabeçalho afeta apenas o conjunto de propriedades incluídas na resposta e ele não afeta como a consulta delta é executada. Consulte Exemplo 4.

Exemplos

Exemplo 1: recuperar alterações para uma coleção de usuários e grupos

Solicitação

O exemplo a seguir mostra uma solicitação usando o $filter=isof('{resource type}') parâmetro em usuários e grupos. Não há parâmetro $select , portanto, um conjunto padrão de propriedades é rastreado e retornado.

GET https://graph.microsoft.com/v1.0/directoryObjects/delta?filter=isof('microsoft.graph.user') or isof('microsoft.graph.group')

Resposta

Aqui está um exemplo da resposta ao usar @odata.deltaLink a inicialização da consulta com $filter=isof('{resource type}'). Observe a presença da propriedade members@delta que inclui as IDs de objetos membros no grupo.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#directoryObjects","@odata.nextLink":"https://graph.microsoft.com/v1.0/directoryObjects/delta?$skiptoken=pqwSUjGYvb3jQpbwVAwEL7yuI3dU1LecfkkfLPtnIjvY1FSSc_",
  "value":[
    {
      "@odata.type": "#microsoft.graph.user",
      "displayName": "Adele Vance",
      "givenName": "Adele",
      "jobTitle": "Retail Manager",
      "surname": "Vance",
      "userPrincipalName": "AdeleV@contoso.com",
      "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
    },
    {
      "@odata.type": "#microsoft.graph.group",
      "createdDateTime":"2021-03-12T10:36:14Z",
      "description":"This is the default group for everyone in the network",
      "displayName":"All Company",
      "groupTypes": [
        "Unified"
      ],
      "mail": "allcompany@contoso.com",
      "id": "72052a9a-c466-4995-8210-95a1c1221995",
      "members@delta": [
        {
          "@odata.type": "#microsoft.graph.user",
          "id": "693acd06-2877-4339-8ade-b704261fe7a0"
        },
        {
          "@odata.type": "#microsoft.graph.user",
          "id": "49320844-be99-4164-8167-87ff5d047ace"
        }
      ]
    }
  ]
}

Exemplo 2: recuperar uma coleção de alterações para um objeto de diretório

Solicitação

Aqui está um exemplo que mostra a solicitação usando o $filter=id eq '{id}' parâmetro. Não há parâmetro $select , portanto, um conjunto padrão de propriedades é rastreado e retornado.

GET https://graph.microsoft.com/v1.0/directoryObjects/delta?$filter=id eq '87d349ed-44d7-43e1-9a83-5f2406dee5bd'

Resposta

Aqui está um exemplo da resposta ao usar @odata.deltaLink a inicialização da consulta com $filter=id eq '{id}'.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#directoryObjects",
  "@odata.nextLink":"https://graph.microsoft.com/v1.0/directoryObjects/delta?$skiptoken=pqwSUjGYvb3jQpbwVAwEL7yuI3dU1LecfkkfLPtnIjsXoYQp_dpA3cNJWc",
  "value": [
    {
      "@odata.type": "#microsoft.graph.group",
      "createdDateTime":"2021-03-12T10:36:14Z",
      "description":"This is the default group for everyone in the network",
      "displayName":"All Company",
      "groupTypes": [
        "Unified"
      ],
      "mail": "allcompany@contoso.com",
      "id": "72052a9a-c466-4995-8210-95a1c1221995",
      "members@delta": [
        {
          "@odata.type": "#microsoft.graph.user",
          "id": "693acd06-2877-4339-8ade-b704261fe7a0"
        },
        {
          "@odata.type": "#microsoft.graph.user",
          "id": "49320844-be99-4164-8167-87ff5d047ace"
        }
      ]
    }
  ]
}

Exemplo 3: recuperar alterações em propriedades específicas para uma coleção de usuários e grupos

Solicitação

O exemplo a seguir mostra a solicitação inicial selecionando uma propriedade cada um de um usuário e grupo para controle de alterações, com o comportamento de resposta padrão:

GET https://graph.microsoft.com/v1.0/directoryObjects/delta?$filter=isof('microsoft.graph.user') or isof('microsoft.graph.group')&$select=microsoft.graph.user/surname,microsoft.graph.group/displayName

Resposta

Aqui está um exemplo da resposta ao usar @odata.deltaLink obtido da inicialização da consulta. Ambas as propriedades estão incluídas na resposta e não se sabe quais foram alteradas desde que a @odata.deltaLink foi obtida.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#directoryObjects",
  "@odata.nextLink":"https://graph.microsoft.com/v1.0/directoryObjects/delta?$skiptoken=pqwSUjGYvb3jQpbwVAwEL7yuI3dU1LecfkkfLPtnIjsXoYQp_dpA3cNJWc",
  "value": [
    {
      "@odata.type": "#microsoft.graph.user",
      "surname": "Vance",
      "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
    },
    {
      "@odata.type": "#microsoft.graph.group",
      "displayName":"All Company",
      "id": "72052a9a-c466-4995-8210-95a1c1221995",
    }
  ]
}

Exemplo 4: recuperar propriedades específicas somente se elas forem alteradas para uma coleção de usuários e grupos

Solicitação

O exemplo a seguir mostra a solicitação inicial selecionando uma propriedade cada um de um usuário e grupo para controle de alterações, com um comportamento de resposta mínimo alternativo:

GET https://graph.microsoft.com/v1.0/directoryObjects/delta?$filter=isof('microsoft.graph.user') or isof('microsoft.graph.group')&$select=microsoft.graph.user/surname,microsoft.graph.group/displayName
Prefer: return=minimal

Resposta

Aqui está um exemplo da resposta ao usar @odata.deltaLink obtido da inicialização da consulta. A microsoft.graph.user/surname propriedade não está incluída, o que significa que ela não foi alterada desde a última consulta delta; está incluída, microsoft.graph.group/displayName o que significa que seu valor foi alterado.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#directoryObjects",
  "@odata.nextLink":"https://graph.microsoft.com/v1.0/directoryObjects/delta?$skiptoken=pqwSUjGYvb3jQpbwVAwEL7yuI3dU1LecfkkfLPtnIjsXoYQp_dpA3cNJWc",
  "value": [
    {
      "@odata.type": "#microsoft.graph.group",
      "displayName":"Everyone",
      "id": "72052a9a-c466-4995-8210-95a1c1221995",
    }
  ]
}