The World Of Connected APIs David Robinson Director of Engineering Information Management – China darobins@Microsoft.com
Linked Information Systems “When describing a complex system, many people resort to diagrams with circles and arrows. […] The system we need is like a diagram of circles and arrows, where circles and arrows can stand for anything. […] The system must allow any sort of information to be entered. Another person must be able to find the information, sometimes without knowing what he is looking for.” – Tim Berners-Lee 1989
Evolution of Linked Systems World Wide Web REST APIs Graph APIs Connected APIs
Early World Wide Web A set of connected links (hypermedia) Audience: Designed for humans Components: HTML, Image, CSS References: Links Interactive browsers, portals
REST APIs A set of connected resources (REST) Audience: Designed for single-function apps Components: Resources, Entities References: “Links” A loss of a fundamental concept: No external linkage!
Graph APIs A subset of REST APIs with properly connected resources (graphs) Audience: Designed for multi-function apps Components: Resources, Entities References: Links
Connected APIs Large companies (Alibaba, Microsoft) often offer many APIs Burden is on the developer to bridge the gaps Connected APIs integrate disjoint graphs into a single connected interface Developers efficiency
Evolution of Connected APIs
Single Hypermedia API Few resources Useful linkage
Adding Hypermedia APIs More resources Still useful linkage Conceptually similar “user”
Many hypermedia APIs 10-100s APIs Self-contained Properly modeled
Too many hypermedia APIs Duplication Manually bridging APIs
Connected APIs No duplication Cross API hypermedia links Discoverability
Connected API Enabled Queries Find all of the people on my team who have edited >100 documents Show me what day of the week my manager schedules most meetings on Get the authors of the documents that have been attached to >10 emails
How is Microsoft Connecting APIs? Short-term: combination of automation and manual effort Long-term: fully automated effort Automation is enabled by standardization + API guidelines OData provides a standardized base for REST APIs
Connected APIs The past and present have shown us the importance of connectedness APIs need to be connected to ease the burden on developers To automate connectedness, adopt a standard like OData
Upcoming Talks O365 APIs OData Exchange Protocols Mail, Calendar, & Contacts