我正在开发一个需要从Outlook.com和Office 365检索和编辑日历事件的应用程序.我看到有两个选项:
Outlook REST API
Microsoft Graph
他们似乎有几乎相同的界面.我看到Outlook REST API支持通知(webhooks),Microsoft图形不支持?那么选择哪一个,有哪些优点/缺点以及为什么有2个api?
要从Outlook.com检索和编辑日历事件,Microsoft Graph API和Outlook REST API端点可以正常工作.如果您计划在生产中使用Webhooks,则需要使用Outlook REST API v2.0端点.我们在Microsoft Graph上预览了Webhooks,并且正在努力对它们进行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,One Drive和Azure Active Directory)访问信息的应用程序.实际上,当您向Microsoft Graph v1.0端点请求任何Outlook功能时,请求将被路由到Outlook REST API v2.0端点.所以API集在设计上是一样的!
我们正在努力缩小各个服务API端点(Outlook REST API,OneDrive API,AAD Graph API等)和Microsoft Graph之间的差距,但出于两个原因会有一个小的增量.
个别服务可能具有相同名称但意味着不同的实体.例如,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暴露一段时间.
在Microsoft Graph中可用之前,某些水平功能(例如,Webhooks)可能在服务端点中的Preview或GA中可用.这是因为与各个服务端点相比,Microsoft Graph API是一个较新的端点.随着时间的推移,这一差距列表预计将降至零.
我们建议您使用Microsoft Graph,只要它具有生产所需的功能/ API以支持您的生产应用程序,或者至少在预览中支持应用程序开发.这使您将来可以轻松扩展需要访问多个Microsoft服务的应用功能,而无需更改端点.如果您需要仅在生产(v2.0)或预览(beta)中的单个服务端点中可用的功能,则可以使用单个服务端点(如Outlook REST API).