I built this demo during Microsoft's internal hackathon, Oneweek, to show what GraphQL querying of the Microsoft Graph API could look like. While not all GraphQL functionality is currently implemented (namely support for pagination, data mutations), I think it's quite cool to be able to request resources from different services in a single request (eg. fetching my recent emails, OneDrive files, users in my org). The gist of how this works: the tooling translates an OData schema into a GraphQL schema and code generates resolvers for each field.
Cool, however, to realize the full benefits of GraphQL, proper resolvers need to be implemented that are connected directly to a data store. This is just a wrapper around a conventional REST endpoint, which allows for easier querying but not much else (when considering the trade offs).
I hear you. This was a fun project to adapt an existing standard (OData) to be compatible with GraphQL and get a sense of what that looks like over a really big API (hundreds of types, thousands of facets). Part of this is also to see whether as a developer, it makes integrating with Microsoft Graph easier or faster. I'd love to hear your thoughts.
Here is the repo if you'd like to self-host the service: https://github.com/microsoftgraph/msgraphql-demo
We're interested in your feedback about integrating with Microsoft Graph using GraphQL. To share your thoughts and scenarios, please leave a comment on UserVoice: https://officespdev.uservoice.com/forums/224641-feature-requ...
I'm happy to answer questions about Microsoft Graph or the implementation of this project.