# Annotation Type GraphQLClient

@Retention(CLASS) @Target(TYPE) public @interface GraphQLClient

Marks an interface as a GraphQL client that the build-time annotation processor wires up to a generated implementation. Each abstract method carries one of `Query`, `Mutation` or `Subscription` holding the GraphQL operation document, zero or more `Var`-annotated parameters supplying its variables, an optional `@Header("Authorization") String` bearer token, and a trailing callback:

- `OnComplete<GraphQLResponse<T>>` for `Query` / `Mutation`;
- `GraphQLSubscription.Handler<T>` for `Subscription`, in which case the method returns a `GraphQLSubscription` handle.

The processor emits a `<SimpleName>Impl` class and registers it with `GraphQLClients` so the interface's `static T of(String endpoint)` factory can return an instance without the project source referencing the impl directly. Mirrors `RestClient` and `GrpcClient`.

- ## Optional Element Summary

  Optional Elements
  Modifier and Type
  Optional Element
  Description
  `String`
  `value`
  Optional default GraphQL endpoint URL baked into the generated `of()` factory's documentation.

- ## Element Details

  - ### value

    String value
    Optional default GraphQL endpoint URL baked into the generated `of()` factory's documentation. The effective endpoint is the argument passed to `of(String endpoint)`; this value is purely informational and may be left empty.
    Default:
      `""`