トレーニング
ラーニング パス
ASP.NET Core 開発のための Microsoft Graph のシナリオを探索する - Training
このラーニング パスには、ユーザーのメール表示、予定表のイベントへのアクセス、ファイルのダウンロードやアップロードなど、ASP.NET Core Web アプリで Microsoft Graph API を使用しながら一般的なタスクを処理する実践演習が含まれてます。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Microsoft では、多くの一般的なプログラミング言語で Microsoft Graph API にアクセスするためのすぐに使用できる SDK を公開しています。 これらの SDK は、Microsoft Graph にアクセスし、適切なパッケージ マネージャーを使用して SDK をインストールし、コーディングを開始する便利な方法です。 ただし、Microsoft Graph REST API のサイズとスコープにより、これらのライブラリはかなり大きくなります。 全体的なインストール サイズが懸念されるアプリケーションの場合、特にアプリケーションが Microsoft Graph のサブセットのみを使用している場合は、このサイズが大きくなると問題が発生します。 この場合、アプリケーションで使用される Microsoft Graph の部分のみを対象とするカスタム API クライアントを Kiota で生成すると、アプリの全体的なインストール サイズが小さくなります。
Kiota で生成されたクライアントを使用すると、Microsoft が発行した SDK を使用する場合よりも、いくつかの長所と短所があります。
Kiota で Microsoft Graph クライアントを生成するには、Microsoft Graph の OpenAPI の説明を指定する必要があります。 Microsoft Graph の OpenAPI の説明は、次のとおりです。
https://aka.ms/graph/v1.0/openapi.yaml
https://aka.ms/graph/beta/openapi.yaml
生成されたクライアントの全体的なサイズを小さくするには、アプリで使用される Microsoft Graph API を特定し、Kiota generate コマンドに--include-path
または--exclude-path
パラメーターを使用して、それらの API のモデルと要求ビルダーのみを生成する必要があります。
たとえば、 To Do API を 使用してユーザーの To Do タスクとタスク リストを管理するアプリケーションを考えてみましょう。 リスト タスク リストやタスク の 作成など、必要なすべての API には、 /me/todo
要求 URL の下の URL を介してアクセスされます。
GET /me/todo/lists
POST /me/todo/lists/{listId}/tasks
この場合、 --include-path
パラメーターを使用して、 /me/todo
パスの下にある API のモデルと要求ビルダーのみを生成できます。
kiota generate --openapi https://aka.ms/graph/v1.0/openapi.yaml --include-path /me/todo/** ...
To Do API を呼び出す C# 用のクライアントを生成する例を見てみましょう。 Microsoft Graph .NET クライアント ライブラリを使用して、アプリはサインインしているユーザーのタスク リストを次のコードで取得できます。
using Azure.Identity;
using Microsoft.Graph;
var credential = new DeviceCodeCredential();
var graphClient = new GraphServiceClient(credential);
var taskLists = await graphClient.Me.Todo.Lists.GetAsync();
または、アプリで Kiota によって生成されたライブラリを使用して、同じ API を呼び出す場合もあります。 次のコマンドを使用して生成されたクライアントの場合:
kiota generate --openapi https://aka.ms/graph/v1.0/openapi.yaml --include-path /me/todo/** --language CSharp --class-name TaskClient --namespace-name MyTaskApp.Client --output ./src/MyTaskApp/Client
同等のコードは次のようになります。
using Azure.Identity;
using Microsoft.Kiota.Authentication.Azure;
using Microsoft.Kiota.Http.HttpClientLibrary;
using MyTaskApp.Client;
// The auth provider will only authorize requests to
// the allowed hosts, in this case Microsoft Graph
var allowedHosts = new [] { "graph.microsoft.com" };
var graphScopes = new [] { "User.Read" };
var credential = new DeviceCodeCredential();
var authProvider = new AzureIdentityAuthenticationProvider(credential, allowedHosts, scopes: graphScopes);
var adapter = new HttpClientRequestAdapter(authProvider);
var taskClient = new TaskClient(adapter);
var taskLists = await tasksClient.Me.Todo.Lists.GetAsync();
ユーザーのタスク リストを取得すると、 ページングされた応答が返される可能性があります。 Microsoft Graph コア ライブラリは、開発者がタスク リストのコレクションをページングするために使用できる ページ反復子 クラスを提供します。
たとえば、C# では、 Microsoft.Graph.Core (dotnet add package Microsoft.Graph.Core
) に依存関係を追加し、 PageIterator
クラスを使用してコレクションをページングします。
using MyTaskApp.Client;
using MyTaskApp.Client.Models;
using Microsoft.Graph;
// Using adapter and taskLists from previous example
var pageIterator = PageIterator<TodoTaskList, TodoTaskListCollectionResponse>
.CreatePageIterator(
adapter,
taskLists,
(taskList) =>
{
Console.WriteLine(taskList.DisplayName);
return true;
});
await pageIterator.IterateAsync();
トレーニング
ラーニング パス
ASP.NET Core 開発のための Microsoft Graph のシナリオを探索する - Training
このラーニング パスには、ユーザーのメール表示、予定表のイベントへのアクセス、ファイルのダウンロードやアップロードなど、ASP.NET Core Web アプリで Microsoft Graph API を使用しながら一般的なタスクを処理する実践演習が含まれてます。