directoryObject: delta

Namespace: microsoft.graph

Obtenha objetos de diretório recentemente criados, atualizados ou eliminados sem efetuar uma leitura completa de toda a coleção directoryObject. Para obter mais informações, consulte Utilizar a consulta delta para controlar as alterações nos dados do Microsoft Graph para obter detalhes.

Esta API está disponível nas seguintes implementações de cloud nacionais.

Serviço global US Government L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

A tabela seguinte mostra a permissão com menos privilégios necessária para cada tipo de recurso ao chamar esta 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

Registar 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')

Registar alterações de um objeto de diretório. Este pedido não é suportado no appRoleAssignment recurso.

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

Parâmetros de consulta OData

Este método suporta parâmetros de consulta OData opcionais 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', existe um limite de 50 expressões de filtro.
  • Pode combinar as $filter sintaxes. Por exemplo, $filter=isof('{resource type}') or id eq '{id}'. Isto fornece uma interseção de objetos especificados pela correspondência {resource type} e o 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 este cabeçalho com um pedido que utiliza um @odata.deltaLink devolve apenas as propriedades do objeto que foram alteradas desde a última ronda. Opcional.

Corpo da solicitação

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

Resposta

Se for bem-sucedido, este método devolve 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 é um @odata.nextLink URL ou um @odata.deltaLink URL.

  • Se uma URL @odata.nextLink for retornada:

    • Isto indica que há mais páginas de dados a obter na sessão. A aplicação continua a fazer pedidos com o @odata.nextLink URL até que um @odata.deltaLink URL seja incluído 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:

    • Isto indica que não existem mais dados sobre o estado existente do recurso a ser devolvido. 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 pedido 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. Isto é diferente do comportamento predefinido.

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. Veja Exemplo 4.

Exemplos

Exemplo 1: Obter alterações para uma coleção de utilizadores e grupos

Solicitação

O exemplo seguinte mostra um pedido com o $filter=isof('{resource type}') parâmetro em utilizadores e grupos. Não existe nenhum $select parâmetro, pelo que um conjunto predefinido de propriedades é controlado e devolvido.

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

Resposta

Eis um exemplo da resposta ao utilizar @odata.deltaLink obtido a partir da inicialização da consulta com $filter=isof('{resource type}'). Tenha em atenção a presença da propriedade members@delta que inclui os IDs dos 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: Obter uma coleção de alterações para um objeto de diretório

Solicitação

Eis um exemplo que mostra o pedido com o $filter=id eq '{id}' parâmetro . Não existe nenhum $select parâmetro, pelo que um conjunto predefinido de propriedades é controlado e devolvido.

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

Resposta

Eis um exemplo da resposta ao utilizar @odata.deltaLink obtido a partir da 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: Obter alterações a propriedades específicas de uma coleção de utilizadores e grupos

Solicitação

O exemplo seguinte mostra o pedido inicial que seleciona uma propriedade cada uma de um utilizador e grupo para controlo de alterações, com comportamento de resposta predefinido:

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

Eis um exemplo da resposta ao utilizar @odata.deltaLink obtido a partir da inicialização da consulta. Ambas as propriedades estão incluídas na resposta e não se sabe quais foram alteradas desde que foi @odata.deltaLink 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: Obter propriedades específicas apenas se estas forem alteradas para uma coleção de utilizadores e grupos

Solicitação

O exemplo seguinte mostra o pedido inicial que seleciona uma propriedade cada uma de um utilizador e grupo para controlo 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

Eis um exemplo da resposta ao utilizar @odata.deltaLink obtido a partir da inicialização da consulta. A microsoft.graph.user/surname propriedade não está incluída, o que significa que não foi alterada desde a última consulta delta; está incluída, microsoft.graph.group/displayName o que significa que o respetivo 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",
    }
  ]
}