Instead of many fixed REST endpoints, GraphQL exposes one endpoint and a typed schema. The client sends a query specifying exactly which fields it wants — no over-fetching, no under-fetching, and related data in one round-trip. It shifts shaping power to the client at the cost of server complexity and caching trade-offs.