# When to Use GraphQL — Web Architecture Patterns

URL:: https://medium.com/@JeffLombardJr/when-and-why-to-use-graphql-24f6bce4839d
Author:: Jeff Long
## AI-Generated Summary
Design Patterns. Not another ‘How to’ guide.
## Highlights
> Simply put, **GraphQL** is a query language that lets you write queries using an object structure rather than a text string. ([View Highlight](https://read.readwise.io/read/01ffss7ynfpn96n61py209myaw))
> {
> projects {
> id
> name
> description
> }
> } ([View Highlight](https://read.readwise.io/read/01ffss87f2cp1gvcaz6dtm6jcf))
> 
> A RESTful architecture example. ([View Highlight](https://read.readwise.io/read/01ffssakjnqcmehd9ywvw8bfxw))
> 
> A GraphQL architecture example. ([View Highlight](https://read.readwise.io/read/01ffssamj13c0073z1w7nfzvwb))
> We don’t have to worry about the endpoints. This follows a fundamental programming principle of [reducing complexity through abstraction](https://en.wikipedia.org/wiki/Abstraction_principle_(computer_programming)). In addition, we also don’t have to worry about all of the `POST/GET/UPDATE/DELETE` calls,`200 OK` server response codes, and [even some caching on certain clients](https://www.apollographql.com/docs/react/advanced/caching.html). ([View Highlight](https://read.readwise.io/read/01ffssa5f8a0jyekf4ea5a58kx))
> Use when you want to aggregate data from multiple places into one convenient api. ([View Highlight](https://read.readwise.io/read/01ffssbdkachjwf3qb5srh5wwr))
> 
> A composite design pattern with GraphQL. ([View Highlight](https://read.readwise.io/read/01ffssber4ggrvcbetr6qbx8d4))
> Proxy Pattern ([View Highlight](https://read.readwise.io/read/01ffssbkj07a1m5ycavzkv09xd))
> Use when you want to add functionality to an old api. ([View Highlight](https://read.readwise.io/read/01ffssbm3mpxmmyd13wqry535m))
> 
> A proxy design pattern with GraphQL. ([View Highlight](https://read.readwise.io/read/01ffssbn4mafwm7b4cxnq57ecz))
> Facade Pattern ([View Highlight](https://read.readwise.io/read/01ffssbrvaep2sjnhg5gtwkdz8))
> Use when you want to simplify a complex api. ([View Highlight](https://read.readwise.io/read/01ffssbshm69zzmpw3va3wpr8z))
> 
> A facade design pattern with GraphQL. ([View Highlight](https://read.readwise.io/read/01ffssbwaztm9xww0rt1bwyjgq))