33

我正在开发一个需要从 Outlook.com 和 Office 365 检索和编辑日历事件的应用程序。我已经看到有 2 个选项:

  1. Outlook REST API
  2. 微软图形 API

它们似乎具有几乎相同的界面。我看到 Outlook REST API 支持通知(webhooks),Microsoft graph 没有?那么,该选择哪一个呢?有什么优点/缺点,为什么有两个 API?

4

1 回答 1

40

免责声明:我是 Microsoft 员工。

要从 Outlook.com 检索和编辑日历事件,Microsoft Graph API 和 Outlook REST API 端点都可以使用。如果您计划在生产中使用的应用程序需要 Webhook,则需要使用 Outlook REST API v2.0 端点。Microsoft 在 Microsoft Graph 上的预览版中提供了 Webhook,并且正在努力将它们带到一般可用性 (GA) 中,以便你将来可以在生产应用程序中使用它们。如果您的应用不需要 Webhooks,则可以使用 Microsoft Graph v1.0。

换句话说,完全支持 Microsoft Graph 和 Outlook REST API 端点。

现在谈谈为什么有 2 个端点:Outlook REST API v1.0 于 2014 年 10 月推出,微软于 2015 年 11 月提供了改进的 v2.0 版本。它具有通过 API 公开的最新和最强大的 Outlook 功能。Microsoft Graph v1.0 是我们在 2015 年 11 月推出的一个方便的端点,用于应用程序访问来自多个 Microsoft 服务(例如 Outlook、OneDrive 和 Azure Active Directory)的信息。事实上,当您向 Microsoft Graph v1.0 端点发出任何 Outlook 功能的请求时,请求会被路由到幕后的 Outlook REST API v2.0 端点。所以 API 集在设计上是相同的!

Microsoft 正在努力缩小单个服务 API 端点(Outlook REST API、OneDrive API、AAD Graph API 等)和 Microsoft Graph 之间的任何差距,但由于两个原因,会有一个小的差异。

  1. 单个服务可能具有名称相同但含义不同的实体。例如,Outlook 和 OneDrive 都有一个“文件夹”实体,但它们的含义不同。在这种情况下,Microsoft 仍然需要合理化 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 是一个更新的端点。随着时间的推移,这个差距列表预计将减少到零。

Microsoft 建议您使用 Microsoft Graph,只要它具有您在生产中支持您的生产应用程序所需的功能/API,或者至少在预览版中支持应用程序开发。这使您将来可以轻松扩展需要访问多个 Microsoft 服务的应用程序功能,而无需更改端点。如果您需要仅在单个服务端点中可用的功能,无论是在生产中 (v2.0) 还是作为预览版 (beta),您可以使用单个服务端点,例如 Outlook REST API。

于 2015-12-28T16:35:47.747 回答