{
"$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"
}