title: How is GraphQL more efficient than REST?
body: <p>Let's take the SpaceX launches api for example. 
  If I make a request with REST (in Node.js) 
  It'll look something like this : </p>
  
  <pre><code>router.get('https://api.spacexdata.com/v3/launches', function (req, res) {
      // What to do with it
  })
  </code></pre>
  
  <p>This will get me all launches data. </p>
  
  <p>Now, with GraphQL you specify only the fields you want. </p>
  
  <pre><code>const LaunchType = new GraphQLObjectType({
    name: 'Launch',
    fields: () =&gt; ({
      flight_number: { type: GraphQLInt },
      mission_name: { type: GraphQLString },
      launch_year: { type: GraphQLString },
      launch_date_local: { type: GraphQLString },
      launch_success: { type: GraphQLBoolean },
      rocket: { type: RocketType }
    })
  })
  </code></pre>
  
  <p>But.. in the query you supply the same route as the REST version route.</p>
  
  <pre><code>resolve(parent, args) {
        return axios
          .get('https://api.spacexdata.com/v3/launches')
          .then((res) =&gt; res.data)
      }
  </code></pre>
  
  <p>So how is the GraphQL request different? doesn't it actually fetch the whole data too?
  Can it "traverse" the route somehow when it makes the request? </p>