{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreicqfzvmkxhskvy3ogteydgezvkz6b6bpbgjo4isgdcmiskwfsgsc4",
    "uri": "at://did:plc:5sgu76a53rz3n6unbykmovqy/app.bsky.feed.post/3mlof55woa222"
  },
  "description": "GraphQL is an API query language and runtime in which clients request exactly the fields they want from a typed schema. A single endpoint accepts queries, mutations, and subscriptions, and the server resolves only the requested fields, often combining data from multiple underlying sources.\n\n\nHow it works\n\nThe server publishes a schema written in the GraphQL SDL, defining types, queries, mutations, and subscriptions. Clients send a query naming the operation, fields, and arguments. The server run",
  "path": "/engineering-glossary/graphql-api-query-language/",
  "publishedAt": "2026-05-12T18:10:08.000Z",
  "site": "https://sahilkapoor.com",
  "tags": [
    "REST API",
    "HTTP",
    "gRPC",
    "JSON",
    "API Gateway"
  ],
  "textContent": "**GraphQL** is an API query language and runtime in which clients request exactly the fields they want from a typed schema. A single endpoint accepts queries, mutations, and subscriptions, and the server resolves only the requested fields, often combining data from multiple underlying sources.\n\n## How it works\n\nThe server publishes a schema written in the GraphQL SDL, defining types, queries, mutations, and subscriptions. Clients send a query naming the operation, fields, and arguments. The server runs **resolvers** for each requested field and returns a JSON response shaped exactly like the query.\n\nKey features include strong typing, introspection (the API documents itself), a single endpoint (no URL design needed), and the ability to coalesce many backends behind one schema.\n\n## Common implementations\n\n  * **Server:** Apollo Server, GraphQL Yoga, Mercurius, graphql-go, gqlgen, Strawberry\n  * **Schema-first platforms:** Hasura, PostGraphile, AWS AppSync, Grafbase\n  * **Client:** Apollo Client, urql, Relay, graphql-request\n  * **Federation:** Apollo Federation, Cosmo, Hot Chocolate, allowing multiple GraphQL services to expose one unified schema\n\n\n\n## GraphQL vs REST\n\n  * **REST** models resources, exposes many URLs, leans on HTTP caching, simpler to reason about.\n  * **GraphQL** models a graph of types, exposes one URL, gives clients flexible field selection, harder to cache, stronger fit when aggregating across multiple services.\n\n\n\nšŸ”—\n\n**Related Terms**\nREST API, HTTP, gRPC, JSON, API Gateway.",
  "title": "GraphQL",
  "updatedAt": "2026-05-13T19:15:08.762Z"
}