Ao trabalhar com dados do Microsoft 365, como e‑mails, calendários, contatos ou tarefas, nem sempre é necessário recuperar todos os itens. Também é útil poder filtrar, classificar e recuperar propriedades de dados específicas em seus aplicativos de e‑mail. Por exemplo, filtrar mensagens pelo remetente, classificar eventos de calendário por data ou buscar apenas alguns campos pode ajudar a manter seu aplicativo rápido.

É aí que entram as consultas OData. O Microsoft Graph suporta OData para ajudar os desenvolvedores a filtrar, ordenar e selecionar dados diretamente no servidor antes que sejam enviados ao seu aplicativo. O resultado é um desempenho mais rápido, cargas úteis menores e aplicativos mais responsivos.

Aspose.Email for .NET torna esse processo fácil com sua classe [ODataQueryBuilder][2]. Neste artigo, exploraremos como ela funciona e como você pode usá‑la para criar consultas dinâmicas e poderosas do Microsoft Graph em C#.

Por que usar consultas OData?

A API Microsoft Graph oferece recursos extensos, mas pode ser complexa ao criar consultas manualmente. Os parâmetros OData permitem filtragem, ordenação, paginação e seleção de propriedades no lado do servidor, o que minimiza o processamento no cliente. Essa abordagem aumenta a eficiência ao reduzir a transferência de dados e acelerar os tempos de resposta, tornando suas aplicações mais rápidas e escaláveis.

Com suporte a OData, você pode agora:

  • Filtre mensagens, contatos ou eventos usando condições personalizadas.
  • Classifique os dados via OrderBy para ordem ascendente ou descendente.
  • Selecione apenas as propriedades necessárias para minimizar o tamanho da carga útil.
  • Implemente paginação usando Top e Skip, ideal para caixas de correio grandes.
  • Expanda entidades relacionadas (por exemplo, anexos) com Expand.
  • Conte e pesquise conjuntos de dados para acesso mais rápido.

Essas funcionalidades são acessíveis e seguras em termos de tipo através da nova classe [ODataQueryBuilder][2].

Seu componente .NET para criar consultas do Microsoft Graph em C#

Aspose.Email for .NET é uma API poderosa para processar e‑mails que permite que desenvolvedores trabalhem diretamente com dados do Microsoft 365, Exchange e Outlook em C#. Ela oferece suporte à leitura e gravação de formatos de e‑mail populares, como MSG, EML, PST e MBOX, e integra‑se a vários protocolos e serviços, incluindo a Microsoft Graph API.

Usando o [ODataQueryBuilder][2] incorporado, você pode criar consultas OData dinâmicas e com segurança de tipo em C#. Isso facilita a filtragem, ordenação e recuperação de dados específicos da caixa de correio – mensagens, contatos ou eventos de calendário – sem precisar escrever manualmente strings de consulta complexas.

Ao delegar a lógica de consulta ao servidor Microsoft Graph, Aspose.Email for .NET ajuda os desenvolvedores a criar aplicativos mais rápidos, mais eficientes e escaláveis que interagem com os dados do Microsoft 365.

Para começar, instale o pacote NuGet Aspose.Email no seu projeto .NET:

Install-Package Aspose.Email

Este pacote inclui todas as classes necessárias para atender às suas necessidades.

Apresentando a Classe ODataQueryBuilder

A classe [Aspose.Email.Clients.Graph.ODataQueryBuilder][2] foi criada para simplificar como você escreve consultas Graph. Você pode usá‑la com vários métodos do cliente Graph, incluindo:

  • ListFolders
  • ListMessages
  • ListContacts
  • ListCalendarItems
  • ListAttachments
  • ListCategories
  • ListOverrides
  • ListRules
  • ListTaskLists
  • ListTasks
  • ListNotebooks

Cada um suporta um parâmetro opcional ODataQueryBuilder para filtragem avançada, ordenação, paginação e seleção, diretamente dentro das suas solicitações Graph.

Exemplo Prático: Filtrar e Ordenar Dados da Caixa de Correio

O exemplo de código abaixo demonstra cenários de consulta básicos e avançados. Ele apresenta a ordenação de pastas e filtragem avançada de mensagens, ilustrando os parâmetros OData para ordem, critérios, paginação, campos selecionados e expansão de entidades relacionadas.

var accessParameters = Settings.User1;
var provider = new AzureConfidentialTokenProvider(
    accessParameters.TenantId,
    accessParameters.ClientId,
    accessParameters.ClientSecret);

var client = GraphClient.GetClient(provider, accessParameters.TenantId);
client.Resource = Aspose.Email.Clients.Graph.ResourceType.Users;
client.ResourceId = accessParameters.Username;
client.EndPoint = "https://graph.microsoft.com";

// List folders sorted by name
var builder = new ODataQueryBuilder { OrderBy = "name asc" };
var folders = client.ListFolders(builder);
foreach (var folder in folders)
    Console.WriteLine(folder.DisplayName);

// Advanced message filtering
var folderId = folders.Find(x => x.DisplayName == "Inbox").ItemId;
builder = new ODataQueryBuilder {
    Filter = "startswith(name,'A')",
    OrderBy = "name asc",
    Top = 10,
    Skip = 5,
    Select = new[] { "name", "age" },
    Expand = new[] { "children", "parents" },
    Count = true,
    Search = "\"John Doe\"",
    Format = "json"
};
var msgs = client.ListMessages(folderId, builder);
foreach (var msg in msgs)
    Console.WriteLine(msg.Subject);

Cenários do Mundo Real

Considere algumas situações práticas em que o [ODataQueryBuilder][2] pode ser aplicado para melhorar o trabalho com dados do Microsoft Graph em suas aplicações .NET:

1. Listas de Pastas da UI
Ordene as pastas alfabeticamente [OrderBy][3] = "name asc" para uma interface de usuário limpa.

2. Filtragem Personalizada
Use [Filter][4] para encontrar mensagens de remetentes específicos ou com determinados assuntos.

3. Paginação de Caixas de Correio Grandes
Combine [Top][5] e [Skip][6] para dividir caixas de correio enormes em resultados gerenciáveis.

4. Selecionar Propriedades Específicas
Recupere apenas os campos que você precisa com [Select][7] para minimizar a carga útil e acelerar o desempenho.

5. Incluir Dados Relacionados
Use [Expand][8] para incluir anexos, categorias ou tópicos em uma única consulta.

Dicas para Utilização Eficaz do OData

  • Confirme que seu GraphClient especifica corretamente Resource, ResourceId e EndPoint.
  • Escolha um provedor de autenticação adequado, como [AzureConfidentialTokenProvider][13].
  • Combine [Filter][4], [Select][7], [OrderBy][3] e [Top][5] para consultas otimizadas.
  • Utilize [Count][14] para obter o número total de itens sem carregar todos os dados.
  • Prepare a lógica de paginação para lidar com grandes conjuntos de dados de forma eficiente.

Conclusão

Neste artigo, aprendemos como usar a classe [ODataQueryBuilder][2] da biblioteca Aspose.Email for .NET para criar e executar consultas do Microsoft Graph. Em vez de compor a sintaxe OData manualmente, agora você pode criar consultas tipadas, dinâmicas e legíveis diretamente no seu código C#. A introdução do suporte a consultas OData no Aspose.Email for .NET capacita os desenvolvedores a criar aplicativos mais inteligentes e eficientes que interagem com o Microsoft Graph.

Pronto para criar aplicações .NET mais rápidas e eficientes com o Microsoft Graph?

Veja Também