This was one of the (multiple) major announces made at /Build 2015 (and detailed afterward at MS Ignite) the introduction of an Office 365 unified API.
I wanted here to give an overview of the news in this area because it’s really important to understand the impact of this even if you are not a developer. The goal of this post is to describe at a high level the roadmap around this API and to point to some of the most interesting resources.
We will cover 5 points:
- Platform architecture and the Office 365 unified API
- The components accessible via Office 365 unified API
- Connecting via Office 365 unified API
- Graph API
- Roadmap
1. Platform architecture and the Office 365 unified API
It can be summarized by this picture (from Office 365 unified API overview):
In Microsoft own words,
The Office 365 unified API exposes multiple APIs from Microsoft cloud services through a single REST API endpoint. By using the Office 365 unified API, you can turn your formerly difficult or complex queries into simple navigations. The API exposes information about productivity entities and the relationships among them, to enable rich navigation in data through one REST URL namespace (https://graph.microsoft.com), using one authentication and authorization system, and using a consistent and unified metadata, payload format, error handling, library, and more.
The great words here are unifying a previously multiple API, and simplifying especially the authentication steps.
In case you didn’t see this quote yet I put it here to reiterate the message
2. The components accessible via Office 365 unified API
Currently, the unified API supports programmatic access to the following components of Office 365:
- Azure AD
- Exchange
- SharePoint
- Yammer
- OneNote
Here is how they appear in Azure AD:
As far as the entities you can manage are concerned here is the detailed picture;
Users |
The User entity provides you access to user information, such as display name, job title, profile photo, and so on. |
Groups | The Group entity provides you access to groups that a user belongs to, management of groups and group data. In addition you can get access to group’s content. |
Files | The File entity represents file storage and management. These are OneDrive for Business files for the user. The Files entity gives you access to a user’s files, and folders and allows you to interact with file data. You can use it to access and manipulate contents and documents |
Use the Mail entity to read compose and send messages and attachments, view and respond to event messages, and manage folders in a user’s mailbox. You can use query parameters to filter messages and folders in the user’s mailbox | |
Calendar | The Calendar entity provides access to events, calendars, and calendar groups. You use it to interact with calendar data. |
Organizational Contacts | The Contact entity provides access to contact data and contact folders Note: Currently only contact data for organization is available. Personal contact data will be available soon. |
More entities will be added to Office 365 unified API in the future, for example, feeds, instant messaging, notes, tasks and so forth. Developers will be able to extend the API by adding:
- new properties to existing entities
- new relationships between existing entities
- new entity types
In time, Office 365 unified API will replace the need for the individual service APIs.
Before the introduction of the unified API, there ware (and they are still there) at least 8 different API:
without speaking about Office 365 Management APIs, already mentioned on my previous post.
Hence come the great plus of the API, unifying the way you access Office 365 data.
You can also find great O365 REST API samples here: http://aka.ms/o365apis (or https://o365apisdemo.azurewebsites.net/)
And test code here: https://apisandbox.msdn.microsoft.com/
3. Connecting via Office 365 unified API
A great benefit of the unified API is that you only have to connect once the Office 365 to get access to all the components
The supported protocols are Open ID connect on OAuth 2.0.
A description of the flow can be found here at 9:44:
4. Graph API
Here is another great schema about the Unified API and its links with the Office Graph:
Here is also a summary of the type of data and actions we have in the Office Graph
And how they are related in a typical action:
Office Graph extensibility was also announced at /Build and summarized below. On the right, it is the corresponding schema in the documentation. This is also detailed here: [ #Office365 ] Delve news at MS Ignite, part 1: the journey.
Among the main news at Build was the introduction of two new relationships (or “edges”) in the graph:
- WorkingWith — People whom you frequently interact with.
- TrendingAround — Items that are popular in your circle of colleagues.
More detailed on this here:
5. Roadmap
Here the roadmap announced at MS Ignite:
and here is my interpretation of it:
Sources:
- MSDN Documentation
- Your Hands Dirty with the Office 365 RESTful APIs
- Speakers: Robert Howard
- Building Solutions with Office Graph
- Speakers: Jon Meling, Helge Grenager Solheim