Microsoft 365 데이터(예: 이메일, 캘린더, 연락처 또는 작업)를 다룰 때 항상 모든 항목을 가져올 필요는 없습니다. 이메일 애플리케이션에서 발신자별로 메시지를 필터링하고, 날짜별로 캘린더 이벤트를 정렬하며, 몇 개의 필드만 가져오는 등 특정 데이터 속성을 필터링, 정렬 및 검색할 수 있으면 앱을 빠르게 유지하는 데 도움이 됩니다.

그것이 OData 쿼리가 필요한 이유입니다. Microsoft Graph는 OData를 지원하여 개발자가 데이터를 서버에서 직접 필터링, 정렬 및 선택할 수 있게 하며, 앱으로 전송되기 전에 처리됩니다. 그 결과 더 빠른 성능, 더 작은 페이로드, 그리고 보다 반응성이 높은 애플리케이션을 얻을 수 있습니다.

Aspose.Email for .NET은 이 프로세스를 [ODataQueryBuilder][2] 클래스를 사용하여 쉽게 만들 수 있습니다. 이 기사에서는 해당 클래스가 어떻게 작동하는지와 C#에서 동적이고 강력한 Microsoft Graph 쿼리를 구축하는 방법을 살펴보겠습니다.

OData 쿼리를 사용하는 이유는?

Microsoft Graph API는 광범위한 기능을 제공하지만 쿼리를 수동으로 작성할 때 복잡할 수 있습니다. OData 매개변수를 사용하면 서버 측 필터링, 정렬, 페이징 및 속성 선택이 가능해져 클라이언트 측 처리를 최소화합니다. 이 접근 방식은 데이터 전송을 줄이고 응답 시간을 가속화하여 애플리케이션을 더 빠르고 확장 가능하게 만듭니다.

OData 지원으로 이제 다음을 수행할 수 있습니다:

  • 사용자 지정 조건을 사용하여 메시지, 연락처 또는 이벤트를 필터링합니다.
  • OrderBy를 사용하여 데이터를 오름차순 또는 내림차순으로 정렬합니다.
  • 필요한 속성만 선택하여 페이로드 크기를 최소화합니다.
  • TopSkip을 사용하여 페이지 매김을 구현하며, 대용량 사서함에 적합합니다.
  • Expand를 사용하여 관련 엔터티(예: 첨부 파일)를 확장합니다.
  • 더 빠른 액세스를 위해 데이터 세트를 카운트하고 검색합니다.

이러한 기능은 새로운 [ODataQueryBuilder][2] 클래스를 통해 액세스 가능하고 타입 안전합니다.

C#에서 Microsoft Graph 쿼리를 구축하기 위한 .NET 구성 요소

Aspose.Email for .NET은 이메일을 처리하기 위한 강력한 API로, 개발자가 C#에서 Microsoft 365, Exchange 및 Outlook 데이터를 직접 작업할 수 있게 해줍니다. MSG, EML, PST 및 MBOX와 같은 일반적인 이메일 형식의 읽기 및 쓰기를 지원하며, Microsoft Graph API를 포함한 다양한 프로토콜 및 서비스와 통합됩니다.

내장된 [ODataQueryBuilder][2]를 사용하면 C#에서 동적이고 타입 안전한 OData 쿼리를 구축할 수 있습니다. 이를 통해 복잡한 쿼리 문자열을 직접 작성하지 않고도 메일함 데이터(메시지, 연락처 또는 캘린더 이벤트)를 쉽게 필터링하고 정렬하며 검색할 수 있습니다.

Microsoft Graph 서버에 쿼리 로직을 오프로드함으로써, Aspose.Email for .NET은 개발자가 Microsoft 365 데이터를 활용하는 더 빠르고, 더 효율적이며 확장 가능한 애플리케이션을 만들 수 있도록 도와줍니다.

시작하려면 .NET 프로젝트에 Aspose.Email NuGet 패키지를 설치하십시오:

Install-Package Aspose.Email

이 패키지는 귀하의 요구를 충족시키는 모든 필수 클래스를 포함합니다.

ODataQueryBuilder 클래스를 소개합니다

The [Aspose.Email.Clients.Graph.ODataQueryBuilder][2] 클래스는 Graph 쿼리를 작성하는 방식을 단순화하도록 설계되었습니다. 여러 Graph 클라이언트 메서드와 함께 사용할 수 있으며, 포함되는 메서드는 다음과 같습니다:

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

각각은 고급 필터링, 정렬, 페이징 및 선택을 위해 선택적 ODataQueryBuilder 매개변수를 지원하며, Graph 요청 내부에서 바로 사용할 수 있습니다.

실용 예제: 메일함 데이터 필터링 및 정렬

아래 코드 샘플은 기본 및 고급 쿼리 시나리오를 모두 보여줍니다. 폴더 정렬 및 고급 메시지 필터링을 시연하며, 정렬, 기준, 페이징, 선택된 필드 및 관련 엔터티 확장을 위한 OData 매개변수를 설명합니다.

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);

실제 시나리오

Microsoft Graph 데이터를 .NET 애플리케이션에서 작업할 때 [ODataQueryBuilder][2]를 적용하여 향상시킬 수 있는 몇 가지 실용적인 상황을 고려해 보세요:

1. UI 폴더 목록
폴더를 알파벳 순으로 정렬 [OrderBy][3] = "name asc" 하여 깔끔한 사용자 인터페이스를 제공합니다.

2. 사용자 지정 필터링
특정 발신자 또는 특정 제목이 있는 메시지를 찾으려면 [Filter][4]를 사용하십시오.

3. 큰 메일함 페이징
[Top][5]와 [Skip][6]을 결합하여 거대한 메일함을 관리 가능한 결과로 나눕니다.

4. 특정 속성 선택
필요한 필드만 [Select][7]을 사용하여 가져와 페이로드를 최소화하고 성능을 향상시킵니다.

5. 관련 데이터 포함
[Expand][8]를 사용하여 첨부 파일, 카테고리 또는 스레드를 단일 쿼리에서 포함합니다.

효과적인 OData 활용을 위한 팁

  • 귀하의 GraphClientResource, ResourceIdEndPoint를 정확히 지정하는지 확인하십시오.
  • 예를 들어 [AzureConfidentialTokenProvider][13]와 같은 적절한 인증 공급자를 선택하십시오.
  • [Filter][4], [Select][7], [OrderBy][3] 및 [Top][5]를 결합하여 최적의 쿼리를 수행하십시오.
  • 전체 데이터를 로드하지 않고 총 항목 수를 얻으려면 [Count][14]를 활용하십시오.
  • 대용량 데이터 세트를 효율적으로 처리하기 위해 페이징 로직을 준비하십시오.

결론

이 문서에서는 Microsoft Graph 쿼리를 구축하고 실행하기 위해 Aspose.Email for .NET 라이브러리의 [ODataQueryBuilder][2] 클래스를 사용하는 방법을 배웠습니다. OData 구문을 수동으로 작성하는 대신 이제 C# 코드에서 타입 안전하고 동적이며 가독성 높은 쿼리를 직접 만들 수 있습니다. Aspose.Email for .NET에 OData 쿼리 지원이 도입되면서 개발자는 Microsoft Graph와 상호 작용하는 보다 스마트하고 효율적인 애플리케이션을 구축할 수 있게 되었습니다.

Microsoft Graph와 함께 더 빠르고 효율적인 .NET 애플리케이션을 구축할 준비가 되셨나요?

관련 항목