To better understand GraphQL, we need to look at what defines it. GraphQL was created to be:declarative — meaning, you should have the power to choose the data that you want. In other words, you query (request for) some data, defining exactly what you want to get (that is where the schema comes in).compositional — just like it is in many programming language objects, you can have one field inheriting from another or inside another. Or from both, if you prefer.strongly-typed — once a field has its type defined, that’s it—a different type isn’t allowed.self-documented — the schema, by itself, offers great documentation (with data types, structure, queries and mutations, etc.).less verbose — we only get what we asked, which greatly differs from REST, which gives you everything (which isn’t very efficient, especially if this everything means a lot of unnecessary data).among others.