GraphQL
In plain terms
A query language that lets clients ask for exactly the data they need.
Going deeper
Instead of many fixed endpoints, GraphQL exposes one endpoint where the client specifies the precise fields it wants in a single request. This avoids over- and under-fetching, at the cost of more server-side complexity.
Under the hood
Solves over/under-fetching but shifts complexity to resolvers and risks expensive nested queries; needs query-depth limiting, caching strategies, and N+1 mitigation (DataLoader).
Examples
GitHub API, Apollo Server/Client, Hasura, schema with queries/mutations/subscriptions.
Think of it like...
Like a build-your-own-bowl restaurant: instead of fixed combo meals, you list exactly the ingredients you want and get just that.