package
0.99.0
Repository: https://github.com/shish-dev/gqlgen.git
Documentation: pkg.go.dev

# README

Federation plugin

Add support for graphql federation in your graphql Go server!

TODO(miguel): add details.

Tests

There are several different tests. Some will process the configuration file directly. You can see those in the federation_test.go. There are also tests for entity resolvers, which will simulate requests from a federation server like Apollo Federation.

Running entity resolver tests.

  1. Go to plugin/federation
  2. Run the command go generate
  3. Run the tests with go test ./....

Architecture

TODO(miguel): add details.

Entity resolvers - GetMany entities

The federation plugin implements GetMany semantics in which entity resolvers get the entire list of representations that need to be resolved. This functionality is currently optin tho, and to enable it you need to specify the directive @entityResolver in the federated entity you want this feature for. E.g.

directive @entityResolver(multi: Boolean) on OBJECT

type MultiHello @key(fields: "name") @entityResolver(multi: true) {
    name: String!
}

That allows the federation plugin to generate GetMany resolver function that can take a list of representations to be resolved.

From that entity type, the resolver function would be

func (r *entityResolver) FindManyMultiHellosByName(ctx context.Context, reps []*generated.ManyMultiHellosByNameInput) ([]*generated.MultiHello, error) {
  /// <Your code to resolve the list of items>
}

# Packages

No description provided by the author
No description provided by the author
No description provided by the author

# Functions

New returns a federation plugin that injects federated directives and types into the schema.

# Structs

Entity represents a federated type that was declared in the GQL schema.
No description provided by the author
No description provided by the author
Requires represents an @requires clause.