web-dev-qa-db-ja.com

Outlook REST API vs Microsoft Graph

Outlook.comおよびOffice 365からカレンダーイベントを取得および編集する必要のあるアプリケーションに取り組んでいます。2つのオプションがあることを確認しました。

  1. Outlook REST API
  2. Microsoftグラフ

それらはほとんど同じインターフェースを持っているようです。 Outlook REST APIは通知(Webhook)をサポートしていますが、Microsoftグラフはサポートしていません。それで、どちらを選択するか、長所/短所は何ですか、なぜ2つのAPIがあるのですか?

31
JeroenB

Outlook.comからカレンダーイベントを取得して編集するには、Microsoft Graph APIとOutlook REST APIエンドポイントが機能します。本番環境で使用する予定のアプリにWebhookが必要な場合は、 Outlook REST API v2.0エンドポイント。MicrosoftGraphのプレビューで利用可能なWebhookがあり、GA=に対応しているので、将来の運用アプリ。アプリにWebhookが必要ない場合は、Microsoft Graph v1.0を使用できます。MicrosoftGraphとOutlookの両方REST APIエンドポイントが完全にサポートされています。

次に、2つのエンドポイントがある理由について説明します。 Outlook REST API v1.0は2014年10月にリリースされ、2015年11月に改良されたv2.0バージョンを提供しました。APIを通じて公開された最新の最も優れたOutlook機能を備えています。MicrosoftGraph v1.0 2015年11月にリリースされた便利なエンドポイントで、アプリは複数のMicrosoftサービス(Outlook、One Drive、Azure Active Directoryなど)の情報にアクセスできます。実際、Microsoft Graph v1.0エンドポイントにリクエストを送信するとOutlookの機能の場合、要求はOutlookにルーティングされますREST API v2.0エンドポイントが隠されています。したがって、APIセットは設計上同じです!

個々のサービスAPIエンドポイント(Outlook REST APIs、OneDrive APIs、AAD Graph APIなど))とMicrosoft Graphの間のギャップを埋めるために懸命に取り組んでいますが、2つの理由により小さなデルタが発生します。

  1. 個々のサービスには、同じ名前で異なる意味を持つエンティティが含まれる場合があります。たとえば、OutlookとOneDriveにはどちらも「フォルダー」がありますが、意味は異なります。この場合、Microsoft Graph APIスキーマを合理化して、Microsoft Graph APIを通過するときにアクセスしているエンティティを明確にする必要があります。フォルダーはOutlook API v1.0エンドポイントで利用可能でしたが、Outlook API v2.0エンドポイントで名前をMailFolderに変更しました。また、Microsoft Graph API v1.0を通じて公開されました。そのため、Microsoft Graphを通じて同じ機能またはAPIが公開される前に、個々のサービスエンドポイントでしばらくの間、常にいくつかの機能またはAPIが公開されることがあります。
  2. 一部の水平機能、たとえば、Webhookは、プレビューまたはGA以前のサービスエンドポイントでMicrosoft Graphで使用可能になる前に使用できます。これは、Microsoft Graph APIが個々のサービスエンドポイント。時間の経過とともに、このギャップのリストはゼロになると予想されます。

プロダクションアプリをサポートするために本番環境で、またはアプリ開発をサポートするために少なくともプレビューで必要な機能/ APIがある限り、Microsoft Graphを使用することをお勧めします。これにより、将来、エンドポイントを変更することなく、複数のMicrosoftサービスへのアクセスを必要とするアプリの機能を簡単に拡張できます。プロダクション(v2.0)またはプレビュー(ベータ)のいずれかで、個々のサービスエンドポイントでのみ使用可能な機能が必要な場合は、Outlook REST APIなどの個々のサービスエンドポイントを使用できます。