diff --git a/README.md b/README.md index 64feb25..e0c6a03 100644 --- a/README.md +++ b/README.md @@ -153,19 +153,34 @@ Architecture styles define how different components of an application programmin ### REST API vs. GraphQL -The diagram below shows a quick comparison between REST and GraphQL. +When it comes to API design, REST and GraphQL each have their own strengths and weaknesses. +The diagram below shows a quick comparison between REST and GraphQL.

-- GraphQL is a query language for APIs developed by Meta. It provides a complete description of the data in the API and gives clients the power to ask for exactly what they need. +REST -- GraphQL servers sit in between the client and the backend services. -GraphQL can aggregate multiple REST requests into one query. GraphQL server organizes the resources in a graph. +- Uses standard HTTP methods like GET, POST, PUT, DELETE for CRUD operations. +- Works well when you need simple, uniform interfaces between separate services/applications. +- Caching strategies are straightforward to implement. +- The downside is it may require multiple roundtrips to assemble related data from separate endpoints. + +GraphQL + +- Provides a single endpoint for clients to query for precisely the data they need. +- Clients specify the exact fields required in nested queries, and the server returns optimized payloads containing just those fields. +- Supports Mutations for modifying data and Subscriptions for real-time notifications. +- Great for aggregating data from multiple sources and works well with rapidly evolving frontend requirements. +- However, it shifts complexity to the client side and can allow abusive queries if not properly safeguarded +- Caching strategies can be more complicated than REST. + +The best choice between REST and GraphQL depends on the specific requirements of the application and development team. GraphQL is a good fit for complex or frequently changing frontend needs, while REST suits applications where simple and consistent contracts are preferred. + +Neither API approach is a silver bullet. Carefully evaluating requirements and tradeoffs is important to pick the right style. Both REST and GraphQL are valid options for exposing data and powering modern applications. -- GraphQL supports queries, mutations (applying data modifications to resources), and subscriptions (receiving notifications on schema modifications). ### How does gRPC work? diff --git a/images/graphQL.jpg b/images/graphQL.jpg index b1dbf55..de9d183 100644 Binary files a/images/graphQL.jpg and b/images/graphQL.jpg differ