Welcome to the #dominoforever Product Ideas Lab! The place where you can submit product ideas and enhancement request. We encourage you to participate by voting on, commenting on, and creating new ideas. All new ideas will be evaluated jointly by the IBM & HCL Product Management & Engineering teams, and the next steps will be communicated. While not all submitted ideas will be executed upon, community feedback will play a key role in influencing which ideas are and when they will be implemented.

For more information and upcoming events around #dominoforever, please visit our Destination Domino page.

Wizard to generate / modify a GraphQL schema for a customer, backed by a GraphQL server

GraphQL is a significantly enhanced REST API. The GraphQL website outlines some of the benefits over standard REST services:

  • Ask for what you need, get exactly that
  • Get many resources in a single request
  • Describe what’s possible with a type system

When coded properly, multiple resources are handled simultaneously on the server, making it more performant. The challenge is that GraphQL requires:

  • a schema which many developers may have difficulty building
  • server-side code to handle queries and mutations
  • a GraphiQL server as documentation and test the APIs (like the Swagger UI provides for OpenAPI specifications)

A lot of this would be beyond many developers.

However, with a wizard or chatbot or other intelligent interface, it's possible to identify

  • queries and mutations
  • objects to return / pass
  • arguments for querying those objects
  • properties of those objects, descriptions and data types
  • "meta-logic" to map between related object types (e.g. how to get Contacts for a Company in this application)
  • query root for each "application's" GraphQL endpoint (e.g. https://server.com/PaulsApp/graphql). Bear in mind also that each "application" may cover multiple NSFs

Domino has the core CRUD / query API already there to intelligently map the schema to microfunctions to validate and process queries and mutations as a GraphQL server. The options available for GraphQL are not extensive, so I don't think the logic to convert the schema and associated meta-logic to actual code would not be too complex. The performance enhancements of gRPC / DQL may better handle parallel processing from a single GraphQL request.

Taking an innovative approach, the GraphiQL interface could be extended - for authorised users - to add / remove queries, mutations, objects, properties etc.

Of course this functionality could also be used to improve on the DAS APIs for mail, calendar and freebusy. That could provide a better performant Verse UI, as well as an API that pulls together multiple "mailboxes" into a single Verse UI for "team mailboxes", multiple calendar overlays etc.

  • Avatar32.5fb70cce7410889e661286fd7f1897de Guest
  • Aug 7 2018
  • Attach files
  • Admin
    Thomas Hampel commented
    October 27, 2018 08:10

    Moving idea to product : Domino Designer