graphql-java-tools icon indicating copy to clipboard operation
graphql-java-tools copied to clipboard

Allow root query type to be optional to support federation implementations better

Open mmuth opened this issue 2 years ago • 1 comments

I want to suggest an idea and checked that ...

  • [x] ... to my best knowledge, my idea wouldn't break something for other users
  • [x] ... the documentation does not mention anything about my idea
  • [x] ... there are no open or closed issues that are related to my idea

Description

Hi there, we are using graphql-java-kickstart to implement GQL microservices in conjunction with apollo federation. This basically works very good.

However, I'd like to propose the enhancement to make the root query type also optional (by configuration).

Background: (at least in our setup) some microservices only extend types defined by other services and add fields to existing types. They never are requested "directly". Basically there is no need to define the query type at all for those services. Currently graphql-java-tools throws an exception when starting up like this (graphql.kickstart.tools.SchemaClassScannerError: Type definition for root query type 'Query' not found!).

Use Cases

Implementing services of a federation can easily add separate fields to entites without the need to define a top level query.

mmuth avatar Jun 03 '22 07:06 mmuth

Maybe your set up is different, but while you source schema might lack a Query type, the federation-ready schema will always define one because of _entities and _service. Perhaps you are trying to create an executable schema out of the original schema rather than the transformed federation-ready one? I never faced this issue, because I use the later.

enriquedacostacambio avatar Sep 30 '22 17:09 enriquedacostacambio