de:code 2015 に参加してきました。多くのセッションが非常に勉強になったのですが、その中から Office 365 開発のセッションで紹介があった Office 365 unified API と API Explorer、API Sandbox について書きたいと思います。
Office 365 API と Office 365 unified API
Office 365 API は Microsoft の Online Service で管理されているデータ、例えばメール、予定表、連絡先といった Exchange Online のデータ、SharePoint Online や OneDrive for Business 上のファイル、Azure Active Directory にあるユーザーやグループの情報にアクセスできる、REST API です。この API を利用すれば、Office 365 にあるデータを活用するさまざまなアプリケーション (PC 用、モバイルデバイス用、そして Web アプリケーション) を作成できます。
参考情報
Get started with Office 365 APIs in apps
https://msdn.microsoft.com/en-us/office/office365/howto/getting-started-Office-365-APIs
ただ従来提供されていた Office 365 API は、API を利用するためのエンドポイント (リクエストを送信する URL) がサービスごとに別々で、認証もサービスごとに個別に行う必要がありました。例えばメール メッセージを扱う API では https://outlook.office365.com/api/ を認証の上利用し、SharePoint Online 上のファイルを扱う API では https://{tenant}.sharepoint.com/ を、OneDrive for Business 上のファイルを扱う API では https://{tenant}-my.sharepoint.com/ を利用する必要がありました。そのため複数のサービスを連携させるようなアプリでは、認証とそれに伴って取得できるトークンの管理が煩雑になり、コードも複雑になりがちでした。
こうした問題を改善する機能として、Office 365 unified AIP が提供されています (現時点では preview という扱いです)。Office 365 unified AIP では一回の認証、一つのエンドポイントで、Online Service のデータを横断的に取り扱うことができます。
https://msdn.microsoft.com/en-us/office/office365/howto/office-365-unified-api-overview より引用
上の図のように Office 365 unified AIP は OpenID Connect と OAuth2.0 を利用して認証/認可を行い、https://graph.microsoft.com という一つのエンドポイントを利用します。これによりクラウド上のさまざまなサービスとデータを組み合わせて利用するアプリケーションでの作業が大きく軽減されます。
参考情報
Office 365 unified API overview (preview)
https://msdn.microsoft.com/en-us/office/office365/howto/office-365-unified-api-overview
このように非常に便利な Office 365 unified AIP ですが、まだ preview ということもあって、リファレンス (Office 365 unified API reference (preview)) は既存の Office 365 API のリファレンスに比べて粒度が荒く、情報量も少なめです。この点を補うサービスとして、API Explorer と API Sandbox というページが開設されています。
API Explorer
API Explorer (https://graphexplorer2.azurewebsites.net/) は Office 365 unified AIP に実際にリクエストを行い、どのようなデータが取得できるのかを簡単に確認できるページです。
このページで右上の「Sign in」をクリックして Office 365 (Azure AD) のアカウントでサインインし、テキストボックスに利用する Office 365 unified AIP を URL として入力して [GET] をクリックすると、実際に API へのリクエストが行われ画面下部に取得したデータが表示されます。
これにより、API の詳細な動作を確認することが可能です。
表示されるデータの先頭部分 @odata.context”: にある $metadata#users/$entity の部分は、Office 365 unified AIP の定義ファイル https://graph.microsoft.com/beta/$metadata (XML データ) に対応しています。
API Sandbox
API Sandbox (https://apisandbox.msdn.microsoft.com/) は Office 365 AIP と Office 365 unified AIP を使ったコードを手軽に実際に動作させてみることができるプレイグラウンドです。
右のペインにコード (C# または JavaScript) を入力して [RUN] をクリックすると、コードが実行されます。下にコンソールが表示されているので、コード中で Console.WriteLine (C#) または console.log (JavaScript) を使ってデバッグ メッセージを表示させることができます。また左のペインの [Code Sample] からさまざまな Office 365 AIP や Office 365 unified AIP のサンプル コードを表示させて実行することもできます。もちろんサンプルに手を加えて実行し、自分のアプリ作成に活用することもできます。
サンプルとプレイグラウンドでの実行を通じて、新しい Office 365 unified AIP の利用方法や挙動を確認し、学習することができるでしょう。