In-Depth
Keeping Up with the Microsoft Graph API: What's New and What's Coming
The Graph API has seen incredible growth in the past year, and especially since the Build 2018 conference. We catch up with the latest additions to Microsoft's cloud APIs and new features in the pipeline.
- By Terrence Dorsey
- 06/01/2018
Microsoft calls the Microsoft Graph "the fabric of all your data," and it's not kidding.
The Graph is an API that gives you direct access to all of your application data, user information and documents in the Microsoft cloud, and lets you tie that together with workflows, business intelligence, machine learning insights and even third-party applications and data sources. Graph APIs extend from e-mail and spreadsheets to team collaboration, identity management and security services.
Going into its third year as a mature, public Microsoft product offering, Graph is growing rapidly in terms of its reach across applications and data services, and its depth of API endpoints and capabilities. At last month's Microsoft Build conference, Microsoft shared a lot about what's changed in Graph over the last year and what's in the pipeline for coming updates. We also saw some great demonstrations of applications and services made possible through Graph APIs, Microsoft cloud services and third-party application integrations.
In this article, I'll give you a brief overview of Graph and how it's growing into a one-stop API for your Microsoft cloud data analysis and application development needs. I'll also bring you up to speed on the Graph APIs and other features added during the past year, along with highlights of future development directions announced by Microsoft at Build 2018.
Microsoft Graph 101
So, what is Microsoft Graph? In the big picture, Graph is the latest evolutionary step in Microsoft's ambitious, decades-long effort to provide developer-level data interchange between applications and services. Starting with Dynamic Data Exchange (DDE) and Object Linking and Embedding (OLE) and continuing through Groove, SharePoint, Azure Active Directory (Azure AD) and Office Graph, Microsoft has been experimenting with cross-application collaboration tools and frameworks since the 1980s.
Graph represents the latest, most comprehensive and most interesting iteration of these efforts so far. It provides an API that lets you easily access data from and build workflows and applications around Microsoft cloud services, including Azure AD, Excel, Intune, Microsoft Teams, OneDrive, OneNote, Outlook and Exchange, Planner, Power BI, SharePoint and more.
The Graph API itself provides a broad, straightforward and consistent set of endpoints for accessing your cloud-based data and applications. Graph uses simple HTTP-based REST API endpoints through a single API service. Any application that can make HTTP calls and read JSON-formatted responses can take advantage of the Graph API. For authentication, Graph uses familiar, industry-standard technologies, including OpenID Connect, OAuth 2.0 and Azure AD.
Microsoft is also providing helpful Graph API wrappers (SDKs in Microsoft parlance) and code samples for a wide variety of programming languages and development platforms, including C#, Java, JavaScript, PHP, Python and Ruby, as well as Android, Angular, ASP.NET MVC, Azure Functions, iOS, .NET Framework UWP and Xamarin.
Comprehensive Graph documentation covers released and beta endpoints and features, along with an interactive Graph Explorer that lets you experiment with API calls and see the response objects in a Web sandbox. You'll also find an online Quick Start wizard that walks you through all of the steps necessary to set up a Graph-based project, from choosing the development platform to registering your application and generating authentication keys.
To learn more about the basics of using the Graph API, see my July 2017 article, "Microsoft Graph 101: Build Intelligence with Microsoft Graph."
The Graph API in 2018
Since its public debut, the Graph API has seen incredible growth in terms of scope and functionality, as well as usage by customers. According to Yina Arenas, Microsoft's principal program manager for Graph and the Microsoft 365 ecosystem, Graph now has over 120 million monthly active users, with 27,000 customer applications making over 8 billion API calls. That's an 800 percent year-over-year increase in usage. Clearly, Graph is scratching an itch for Microsoft's cloud-application customers.
Microsoft is also constantly updating the Graph API to improve existing functionality, add new endpoints and preview support for new applications and data sources. Some significant additions to the Graph API in the last year include enhancements to existing Intune APIs and Outlook mail and calendar APIs, as well as incremental improvements to the Excel, OneDrive, OneNote and SharePoint APIs. In addition, some major new APIs have been added to Graph.
For Office 365, the Graph API now offers endpoints and methods for Planner tasks and plans, Microsoft Bookings customer bookings (currently in preview) and Teams teamwork capabilities (also in preview).
Planner APIs let you see tasks assigned to a user, retrieve plans and tasks for a group, and create, update or delete tasks. For Office 365 Enterprise subscription customers, the Bookings API provides the infrastructure to build and manage appointment-reservation services for Web sites, call centers or social media that integrate easily with your existing internal (cloud-based) calendar, product or service, and staffing data.
The new Teamwork API provides comprehensive control over creating and managing teams, channels and membership within Teams, letting you build and populate virtual teams when needed, then archive the team when the project is finished. You can post messages, create calendar events and invites, manage team ownership and more. The Teamwork API and associated programming model also extends Teams functionality with the ability to pull in external content via tabs, connectors and cards, make channel content available to external Web sites, integrate bots and much more. Think of the Teamwork API as Slack integrations on steroids with a common, built-in API gateway.
For Windows 10 and mobile devices, the Project Rome device relay API (now in preview) enables cross-platform, cross-device messaging that lets you actively transfer data or application experiences between devices and Windows 10. Think of device relay as similar to Apple's iOS-macOS Handoff technology, but with far more flexibility for platform and application support.
For Enterprise Mobility and Security (EMS), significant new identity and access APIs for Azure AD have been added along with a new security API. Support for Graph-based security functionality starts with alert management and organizational context for security-related events. Data providers currently include Azure Security Center and Azure AD Directory Identity Protection.
Finally, the new education API pulls together Office 365 resources such as Teams with Azure AD to provide what Microsoft is calling School Data Sync (SDS) management, an extensible student information system that unlocks access to data throughout an educational institution, from teacher and student rosters to class schedules, assignments and work submissions.
Coming Soon to Graph
As I mentioned earlier, Microsoft is shipping regular updates to the Graph API, and it appears to be all-in on integrating every corner of the Microsoft cloud (possibly along with some applications that are currently standalone) into Graph.
A number of areas for future development were announced at Build 2018. Here are some highlights:
- Outlook mail and calendar APIs, one of the most popular areas of the Graph API for both users and administrators, will continue to see additional new endpoints and methods. There's really a lot happening there, so keep an eye on the Graph changelog for release details.
- Project Rome activity feed APIs, already in preview alongside device relay, extends cross-platform, cross-device functionality to Windows features such as Windows Timeline, Windows Sets, Cortana "Pick Up Where I Left Off" and Microsoft Launcher.
- The new Graph security API will be extended with support for Advanced Threat Analytics and Advanced Threat Protection.
- Coming soon: store-and-forward services for user and application notifications and spatial analytics services for integrating devices and the Internet of Things (IoT) into your Graph data.
- On the development side, Microsoft also announced upcoming support for webhooks on the users and groups APIs, enabling push notifications for changes in the Graph, along with consistent OpenAPI (formerly Swagger) descriptions for all Graph APIs. They're currently available in the Graph GitHub repos, and will be rolling out to the API endpoints soon.
So as you can see, the breadth of Graph API offerings keeps growing across Microsoft's cloud-based applications and data services. The range of possible development scenarios is huge, and I can't recall a major platform offering that's been so easy to adopt with so many choices of languages, frameworks and platforms.
About the Author
Terrence Dorsey is a technical writer, editor and content strategist specializing in technology and software development. Over the last 25-plus years he has worked on developer-focused projects at ESPN, The Code Project, and Microsoft. Read his blog at http://terrencedorsey.com or follow @tpdorsey on Twitter.