GraphQL API Project for IBM Connections

Update - December 2021: IBM sold the Collaboration Solutions business to HCL in December 2018 (wow time flies). The content of the post below may contain product names and links to material that are no longer valid. However the code examples or link to code sample may continue to be useful to others.

Original post content

graphql

IBM Connections provides REST APIs that provide all results in an XML format. Modern web applications tend to use JSON as the preferred data format between a client and a web server. JSON is considered to be less verbose, smaller to ship over small bandwidth and easier to parse using basic JavaScript. GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.

While typical REST APIs require loading from multiple URLs, GraphQL APIs get all the data your app needs in a single request. Apps using GraphQL can be quick even on slow mobile network connections.

I am starting a project to front end all of IBM Connections READ REST APIs with a GraphQL endpoint. Create, Delete, Update operations are not to be included. This is means if you write applications to access data stored in IBM Connections, your applications will be able to leverage the GraphQL endpoints to access both Connections OnPrem or in Cloud leveraging this project.

I recorded a ~60 minutes video that walks through a preview of what is to be delivered and provides you with the necessary background to understand its benefit and potentially build your own. Ultimately, this project will be delivered as a Docker container and made available to IBM Partners that write applications to interact with IBM Connections for their own value-add applications.

Note: Prior knowledge in JavaScript, NodeJS and REST APIs are required.

Visit the project page