Dynamic Graph API

Advantages

  1. It is easier to query or modify because you operate on real types not abstract types
  2. Queries and mutations are more readable
  3. The navigation through the Dynamic Graph is much easier and more natural 4It is easier to use by the consumer because it's not necessary to convert the abstract types into the real types as you already operate on real types 5It is possible to use a code generator to generate types from the Dynamic Graph schema

Limitations

  1. Not everything is possible
  2. The Dynamic Graph schema contains all Components, Entity Types and Relation Types as defined by the type system. The Reactive Graph Flow enables you to add further components to existing Entity Instances or Relation Instances. The schema simply cannot contain which components have been added to which instances at runtime. Querying for these properties is possible but makes the query invalid.
  3. Due to the parsing and resolving at runtime the Dynamic Graph is notable slower than the GraphQL API which is generated at compile time.

GraphQL Endpoint

The GraphQL endpoint can be reached at http://hostname/31415/dynamic-graph or ws://hostname/31415/dynamic-graph.

The GraphQL schema documentation is automatically generated using the documentation of the Components, Entity Types or Relation Types.

Schema Introspection

The GraphQL Server allows introspection and returns a GraphQL schema including documentation. With this it is possible to validate queries and mutations and some tools can use the schema to provide autocompletion for creating queries.

Schema Regeneration

The GraphQL schema is regenerated each time a Component, an Entity Type or a Relation Type is added or removed.

GraphQL Tools

Usage