A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.

In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.

link GraphQL Schema definition

  • type __Directive {
  • # Arguments
  • # includeDeprecated: [Not documented]
  • args(includeDeprecated: Boolean): [__InputValue!]!
  • description: String
  • isRepeatable: Boolean
  • locations: [__DirectiveLocation!]!
  • name: String!
  • onField: Boolean! @deprecated( reason: "Use `locations`." )
  • onFragment: Boolean! @deprecated( reason: "Use `locations`." )
  • onOperation: Boolean! @deprecated( reason: "Use `locations`." )
  • }