33

Outlook.com と Office 365 からカレンダー イベントを取得して編集する必要があるアプリケーションを開発しています。次の 2 つのオプションがあることがわかりました。

  1. Outlook REST API
  2. マイクロソフト グラフ API

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

4

1 に答える 1

40

免責事項: 私はマイクロソフトの従業員です。

Outlook.com からカレンダー イベントを取得して編集するには、Microsoft Graph API と Outlook REST API エンドポイントの両方が機能します。運用環境で使用する予定のアプリに Webhook が必要な場合は、Outlook REST API v2.0 エンドポイントを使用する必要があります。Microsoft は、Microsoft Graph のプレビューで利用できる Webhook を用意しており、それらを一般提供 (GA) するために取り組んでいるため、将来的には運用アプリで使用できます。アプリに Webhook が必要ない場合は、Microsoft Graph v1.0 を使用できます。

つまり、Microsoft Graph と Outlook REST API エンドポイントの両方が完全にサポートされています。

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

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

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

Microsoft の推奨事項は、実稼働アプリをサポートするために実稼働環境で必要な機能/API、またはアプリ開発をサポートするために少なくともプレビューで必要な機能/API がある限り、Microsoft Graph を使用することです。これにより、将来、エンドポイントを変更することなく、複数の Microsoft サービスへのアクセスを必要とするアプリの機能を簡単に拡張できます。運用環境 (v2.0) またはプレビュー (ベータ) として、個々のサービス エンドポイントでのみ使用できる機能が必要な場合は、Outlook REST API などの個々のサービス エンドポイントを使用できます。

于 2015-12-28T16:35:47.747 に答える