mirumee/ariadne

[federation] support new @composeDirective

Ouverte

#1 031 ouverte le 17 févr. 2023

 (1 commentaire) (0 réaction) (0 personne assignée)Python (195 forks)batch import
help wanted

Métriques du dépôt

Stars
 (2 342 étoiles)
Métriques de merge PR
 (Merge moyen 12j) (3 PRs mergées en 30 j)

Description

Apollo Federation v2.1 introduced new @composeDirective directive that allows users to specify directives that should be preserved in the supergraph composition (by default composition strips out most directives from supergraph).

extend schema
  @link(
    url: "https://specs.apollo.dev/federation/v2.3",
    import: ["@composeDirective", "@extends", "@external", "@key", "@inaccessible", "@interfaceObject", "@override", "@provides", "@requires", "@shareable", "@tag"]
  )
  @link(url: "https://myspecs.dev/myCustomDirective/v1.0", import: ["@custom"])
  @composeDirective(name: "@custom")

// will be present in the supergraph definition
directive @custom on OBJECT

type Product @custom @key(fields: "id")
  id: ID!
  // other fields omitted for clarity
}

Additional resources:


New directive functionality can be tested using Apollo Federation Subgraph Compatibility NPX script (and Github Action). Example integration project is already provided in the subgraph compatibility testing repository.

Guide contributeur