Need advice about which tool to choose?Ask the StackShare community!

GraphQL

33.4K
27.4K
+ 1
310
REST

20
192
+ 1
0
Add tool

GraphQL vs REST: What are the differences?

1. Data Fetching: In GraphQL, the client can specify exactly what data it needs, allowing for fetching of only required data in a single request, reducing over-fetching. In contrast, REST endpoints return fixed data structures that may include excess or insufficient information, resulting in over-fetching or under-fetching. 2. Overhead: REST endpoints often require multiple requests to fetch related resources, leading to additional overhead in terms of network requests and data processing. On the other hand, GraphQL allows for fetching all necessary resources in a single request, reducing network overhead and improving performance. 3. Versioning: GraphQL does not require versioning of APIs as clients can request only the fields they need, and schema changes can be managed without impacting existing queries. In REST, versioning is important to maintain backward compatibility for clients, requiring explicit versioning in endpoints or headers. 4. Response structure: REST APIs have predefined response structures determined by the server, leading to potential issues when clients do not need all the data. GraphQL, on the other hand, allows clients to request data in the structure they desire, enabling flexible and precise data retrieval. 5. Caching: REST APIs rely on standard HTTP caching mechanisms like ETag or Last-Modified headers for caching responses, which can be complex to manage. GraphQL provides a built-in caching layer that allows for more granular control over data caching, improving efficiency and reducing redundant data fetches. 6. Documentation: In GraphQL, the schema serves as the source of truth for the API, providing detailed documentation and enabling introspection capabilities for clients to explore available data and operations. In REST, documentation is typically external to the API, leading to potential inconsistencies between the documentation and the actual API implementation.

In Summary, GraphQL and REST differ in data fetching efficiency, network overhead, versioning requirements, response structure flexibility, caching mechanisms, and documentation integration.

Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of GraphQL
Pros of REST
  • 75
    Schemas defined by the requests made by the user
  • 63
    Will replace RESTful interfaces
  • 62
    The future of API's
  • 49
    The future of databases
  • 13
    Self-documenting
  • 12
    Get many resources in a single request
  • 6
    Query Language
  • 6
    Ask for what you need, get exactly that
  • 3
    Fetch different resources in one request
  • 3
    Type system
  • 3
    Evolve your API without versions
  • 2
    Ease of client creation
  • 2
    GraphiQL
  • 2
    Easy setup
  • 1
    "Open" document
  • 1
    Fast prototyping
  • 1
    Supports subscription
  • 1
    Standard
  • 1
    Good for apps that query at build time. (SSR/Gatsby)
  • 1
    1. Describe your data
  • 1
    Better versioning
  • 1
    Backed by Facebook
  • 1
    Easy to learn
  • 4
    Popularity

Sign up to add or upvote prosMake informed product decisions

Cons of GraphQL
Cons of REST
  • 4
    Hard to migrate from GraphQL to another technology
  • 4
    More code to type.
  • 2
    Takes longer to build compared to schemaless.
  • 1
    No support for caching
  • 1
    All the pros sound like NFT pitches
  • 1
    No support for streaming
  • 1
    Works just like any other API at runtime
  • 1
    N+1 fetch problem
  • 1
    No built in security
    Be the first to leave a con

    Sign up to add or upvote consMake informed product decisions

    What is GraphQL?

    GraphQL is a data query language and runtime designed and used at Facebook to request and deliver data to mobile and web apps since 2012.

    What is REST?

    An architectural style for developing web services. A distributed system framework that uses Web protocols and technologies.

    Need advice about which tool to choose?Ask the StackShare community!

    Jobs that mention GraphQL and REST as a desired skillset
    What companies use GraphQL?
    What companies use REST?
    See which teams inside your own company are using GraphQL or REST.
    Sign up for StackShare EnterpriseLearn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with GraphQL?
    What tools integrate with REST?
      No integrations found

      Sign up to get full access to all the tool integrationsMake informed product decisions

      Blog Posts

      GitHubDockerReact+17
      41
      36706
      GitHubPythonNode.js+47
      55
      72486
      What are some alternatives to GraphQL and REST?
      gRPC
      gRPC is a modern open source high performance RPC framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking...
      Falcor
      Falcor lets you represent all your remote data sources as a single domain model via a virtual JSON graph. You code the same way no matter where the data is, whether in memory on the client or over the network on the server.
      React
      Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
      graphql.js
      Lightest GraphQL client with intelligent features. You can download graphql.js directly, or you can use Bower or NPM.
      MongoDB
      MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
      See all alternatives