Site: Delta

Obtenha sites recém-criados, atualizados ou excluídos sem precisar realizar uma leitura completa de todo o conjunto de sites.

Uma chamada de função delta para sites é semelhante a uma solicitação GET, exceto que, aplicando tokens de estado adequadamente em uma ou mais dessas chamadas, você pode consultar alterações incrementais nos sites. Ele permite que você mantenha e sincronize um armazenamento local dos sites de um usuário sem precisar buscar todos os sites do servidor todas as vezes. O aplicativo chama a API sem especificar parâmetros. O serviço começa a enumerar sites e retorna páginas de alterações nesses sites, acompanhadas por um @odata.nextLink ou um @odata.deltaLink. Seu aplicativo deve continuar fazendo chamadas usando o @odata.nextLink até que haja um @odata.deltaLink na resposta.

Depois de receber todas as alterações, você poderá aplicá-las ao seu estado local. Para monitorar alterações futuras, chame a API delta usando o @odata.deltaLink na resposta anterior.

Todos os recursos marcados como excluídos devem ser removidos do estado local.

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

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

Permissões

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) Sites.Read.All Sites.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Aplicativo Sites.Read.All Sites.ReadWrite.All

Solicitação HTTP

GET /sites/delta

Parâmetros de consulta

Na URL da solicitação, você pode incluir o seguinte parâmetro de consulta opcional.

Parâmetro Tipo Descrição
token Cadeia de caracteres Se o valor for latest, a chamada retornará uma resposta vazia com o token delta mais recente. Se o valor for um token delta anterior, a chamada retornará o novo estado desde que o token foi emitido.

Esse método também dá suporte aos $selectparâmetros de consulta , $expande $top OData para personalizar a resposta.

Cabeçalhos de solicitação

Cabeçalho Valor
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.

Corpo da solicitação

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

Resposta

Se bem sucedido, este método retorna um 200 OK código de resposta e uma coleção de objetos de lista no corpo da resposta.

Além da coleção de objetos de site , a resposta também inclui uma das propriedades a seguir.

Nome Valor Descrição
@odata.nextLink URL Uma URL para recuperar a próxima página disponível de alterações, caso haja mais alterações no conjunto atual.
@odata.deltaLink URL Uma URL retornada em vez de @odata.nextLink depois que todas as alterações atuais forem retornadas. Use esta propriedade para ler o próximo conjunto de alterações no futuro.

Em alguns casos, o serviço retorna um 410 Gone código de resposta com uma resposta de erro que contém um dos códigos de erro a seguir e um Location cabeçalho que contém uma nova nextLink que inicia uma nova enumeração delta. Ocorre quando o serviço não pode fornecer uma lista de alterações para um determinado token; Por exemplo, se um cliente tentar reutilizar um token antigo depois de ficar desconectado por um longo tempo ou se o estado do servidor for alterado e um novo token for necessário.

Depois que a enumeração completa for concluída, compare os sites retornados com seu estado local e siga as instruções com base no tipo de erro.

Tipo de erro Instruções
resyncChangesApplyDifferences Substitua todos os sites locais pelas versões do servidor (incluindo exclusões) se tiver certeza de que o serviço estava atualizado com suas alterações locais quando você sincronizou pela última vez. Carregar alterações locais que o servidor não conhece.
resyncChangesUploadDifferences Carregue todos os sites locais que o serviço não retornou e carregue todos os sites que diferem das versões do servidor. Guarde as duas cópias se não tiver certeza de qual delas está mais atualizada.

para obter mais informações, consulte Tipos de recursos e respostas de erro do Microsoft Graph.

Exemplos

Exemplo 1: solicitação inicial

O exemplo a seguir mostra a solicitação inicial e como chamar essa API para estabelecer seu estado local.

Solicitação

O exemplo a seguir mostra a solicitação inicial.

GET https://graph.microsoft.com/v1.0/sites/delta

Resposta

O exemplo a seguir mostra a resposta que inclui a primeira página de alterações e a propriedade @odata.nextLink que indica que não há mais sites disponíveis no conjunto atual de sites. Seu aplicativo deve continuar solicitando o valor da URL de @odata.nextLink até que todas as páginas dos sites sejam recuperadas.

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

{
  "value": [
    {
      "id": "contoso.sharepoint.com,da60e844-ba1d-49bc-b4d4-d5e36bae9019,712a596e-90a1-49e3-9b48-bfa80bee8740",
      "name": "teamSiteA"
    },
    {
      "id": "contoso.sharepoint.com,da60e844-ba1d-49bc-b4d4-d5e36bae9019,0271110f-634f-4300-a841-3a8a2e851851",
      "name": "teamSiteB"
    },
    {
      "id": "contoso.sharepoint.com,da60e844-ba1d-49bc-b4d4-d5e36bae9019,0271110f-634f-4300-a841-3a8a2e851851",
      "name": "teamSiteC"
    }
  ],
  "@odata.nextLink": "https://graph.microsoft.com/v1.0/sites/delta?token=1230919asd190410jlka"
}

Exemplo 2: solicitação de última página

O exemplo a seguir mostra uma solicitação que acessa a última página em um conjunto e como chamar essa API para atualizar seu estado local.

Solicitação

O exemplo a seguir mostra uma solicitação após a solicitação inicial.

GET https://graph.microsoft.com/v1.0/sites/delta?token=1230919asd190410jlka

Resposta

O exemplo a seguir mostra a resposta que indica que o site nomeado All Company foi excluído entre a solicitação inicial e esta solicitação para atualizar o estado local.

A página final de sites inclui a propriedade @odata.deltaLink que fornece a URL que pode ser usada posteriormente para recuperar alterações desde o conjunto atual de sites.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites",
    "@odata.deltaLink": "https://graph.microsoft.com/v1.0/sites/delta?$deltatoken=b2vm2fSuZ-V_1Gdq4ublGPD4lReifRNHYMGxkFf0yz2fTqr9U6jMyWv8hihThODJCO_5I7JbpAFLQAIOUzYXhCPl0jlQdjTC1o24iBe81xQyAWJOiP3q1xyMKjlfZUawWok3Njc_LIrrSgrdSydhsVCL6XYpRkYGJ9JDYxFMiJw2vUs1QC_S0cW6hqYQnOimeA918dQZwD8pJI9oUJryV2Ow-7Dj9p18p1I6pFg044k.xipVdgMKlOFIlXzPipsKzlFJbYUTD1sGiFiPe7uZA7Q",
    "value": [
        {
            "createdDateTime": "2024-03-11T02:36:04Z",
            "name": "All Company",
            "displayName": "All Company",
            "isPersonalSite": false,
            "id": "bd565af7-7963-4658-9a77-26e11ac73186",
            "root": {}
        }
    ]
}

Em alguns cenários, talvez você queira solicitar o valor atual deltaLink sem primeiro enumerar todos os sites, listas e sites. Isso pode ser útil se o seu aplicativo quiser saber apenas sobre alterações e não precisar saber sobre sites existentes. Para recuperar o mais recente deltaLink, chame delta com o parâmetro ?token=latestde cadeia de caracteres de consulta .

Observação: Se você quiser manter uma representação local completa dos recursos, deverá usar delta para a enumeração inicial. Usar o delta é a única maneira de garantir que você leu todos os dados de que precisa.

Solicitação

O exemplo a seguir mostra uma solicitação.

GET https://graph.microsoft.com/v1.0/sites/delta?token=latest

Resposta

O exemplo a seguir mostra a resposta.

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

{
  "value": [ ],
  "@odata.deltaLink": "https://graph.microsoft.com/v1.0/sites/delta?token=1230919asd190410jlka"
}

Confira também