2015-12-27 11 views
25

Sto lavorando su un'applicazione che ha bisogno di recuperare e modificare gli eventi del calendario da Outlook.com e Office 365. Ho visto ci sono 2 opzioni:Outlook API REST vs Microsoft Graph

  1. Outlook API REST
  2. Microsoft Graph

Sembra che abbiano praticamente la stessa interfaccia. Ho visto che l'API REST di Outlook supporta le notifiche (webhook), il grafico Microsoft no? Quindi quale scegliere, quali sono i vantaggi/svantaggi e perché ci sono 2 API?

risposta

30

Per recuperare e modificare gli eventi del calendario da Outlook.com, gli endpoint API REST di Microsoft Graph e Outlook REST funzionano. Se hai bisogno di Webhook per un'app che prevedi di utilizzare in produzione, devi utilizzare l'endpoint v2.0 di Outlook REST API. Abbiamo Webhook disponibili in anteprima su Microsoft Graph e stiamo lavorando per eseguirli, in modo da poterli utilizzare nelle app di produzione in futuro. Se non hai bisogno di Webhook per la tua app, puoi utilizzare Microsoft Graph v1.0. Entrambi gli endpoint REST di Microsoft Graph e Outlook sono completamente supportati.

Ora sul perché ci sono 2 endpoint. L'API REST di Outlook v1.0 è stata lanciata nell'ottobre 2014 e nel novembre 2015 abbiamo offerto una versione v2.0 migliorata. Offre le più recenti funzionalità di Outlook esposte tramite le API. Microsoft Graph v1.0 è un comodo endpoint, lanciato a novembre 2015, per consentire a un'app di accedere alle informazioni da più servizi Microsoft, ad esempio Outlook, One Drive e Azure Active Directory. Infatti, quando si effettua una richiesta all'endpoint Microsoft Graph v1.0 per qualsiasi funzionalità di Outlook, la richiesta viene instradata all'endpoint v2.0 di Outlook REST API sotto le copertine. Quindi i set di API sono identici per design!

Stiamo lavorando per chiudere eventuali gap tra i singoli endpoint dell'API di servizio (API REST di Outlook, API OneDrive, API grafico AAD ecc.) E Microsoft Graph, ma ci sarà un piccolo delta per due motivi.

  1. I singoli servizi possono avere entità che hanno lo stesso nome ma che significano qualcosa di diverso. Ad esempio, sia Outlook che OneDrive hanno "cartella" ma significano cose diverse. In questo caso, è necessario razionalizzare lo schema dell'API di Microsoft Graph per chiarire a quale entità si sta accedendo quando si passa attraverso Microsoft Graph API. La cartella era disponibile nell'endpoint v1.0 dell'API di Outlook e lo abbiamo rinominato in MailFolder nell'endpoint v2.0 dell'API di Outlook, ed è stato esposto anche tramite Microsoft Graph API v1.0. Pertanto, potresti sempre vedere alcune funzionalità o API esposte in un singolo endpoint del servizio per un po 'di tempo prima che la stessa funzionalità o API venga esposta tramite Microsoft Graph.
  2. Alcune funzionalità orizzontali, ad esempio, Webhook possono essere disponibili in Anteprima o GA in precedenza in un endpoint del servizio prima che sia disponibile in Microsoft Graph. Ciò è dovuto all'API di Microsoft Graph che rappresenta un endpoint più recente rispetto ai singoli endpoint del servizio. Nel tempo, questo elenco di lacune dovrebbe scendere a zero.

La nostra raccomandazione è che l'utente utilizzi Microsoft Graph purché abbia le funzionalità/API necessarie in produzione per supportare le app di produzione o, almeno, in Anteprima per supportare lo sviluppo di app. In questo modo, per il futuro, sarà più facile espandere le funzionalità dell'app che richiedono l'accesso a più servizi Microsoft, senza modificare gli endpoint. È possibile utilizzare singoli endpoint di servizio come l'API REST di Outlook se è necessaria una funzionalità disponibile solo nel singolo endpoint del servizio, sia in produzione (v2.0) che come anteprima (beta).

+0

Ciao Venkat, grazie per i tuoi chiarimenti. Potresti anche dirmi se ho bisogno di una licenza di Office 365 per un'app per Android che visualizza il calendario degli utenti di alcune sale riunioni utilizzando Outlook REST API v2?O è sufficiente un account di Outlook? Sono abbastanza confuso. Grazie! –

+1

Ci scusiamo per il ritardo nella risposta. Ho perso le notifiche dei messaggi. Gli utenti della tua app Android devono essere utenti di Office 365. Per registrare la tua app, per lo scenario della sala conferenze, devi registrare la tua app utilizzando un tenant di Office 365. L'app utilizza il flusso OAuth delle credenziali del client per accedere ai calendari di tutte le sale riunioni. Pertanto, se stai utilizzando Office 365 al lavoro, puoi semplicemente utilizzare l'account Office 365 della tua organizzazione per registrare la tua app. Spero che questo aiuti ... –

+1

Quindi, dove devo reindirizzare gli utenti se stanno accedendo a un account Outlook.com e non a un account Office365? Mi porta alla pagina di accesso 365, prova a reindirizzarmi a Outlook.com, quindi mi riporta a 365 quando provo a eseguire OAuth. –