Skip to Main Content
HCL Domino Ideas Portal

Welcome to the #dominoforever Product Ideas Forum! 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 by 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

Status Under Consideration
Workspace Domino Designer
Created by Guest
Created on Aug 7, 2018

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.

  • Attach files
  • Admin
    Thomas Hampel
    Reply
    |
    Oct 27, 2018

    Moving idea to product : Domino Designer