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
OrderBypara ordem ascendente ou descendente. - Selecione apenas as propriedades necessárias para minimizar o tamanho da carga útil.
- Implemente paginação usando
TopeSkip, 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:
ListFoldersListMessagesListContactsListCalendarItemsListAttachmentsListCategoriesListOverridesListRulesListTaskListsListTasksListNotebooks
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?
- Baixe a versão mais recente Aspose.Email for .NET
- Explore mais exemplos de código na Documentação da API
- Baixe uma licença temporária de 30 dias gratuita para avaliar a biblioteca sem limitações.
