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

GraphQL

29.5K
24.9K
+ 1
300
OData

50
125
+ 1
34
Add tool

GraphQL vs OData: What are the differences?

GraphQL: A data query language and runtime. 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; OData: *A REST-based protocol for querying and updating data *. It is an ISO/IEC approved, OASIS standard that defines a set of best practices for building and consuming RESTful APIs. It helps you focus on your business logic while building RESTful APIs without having to worry about the various approaches to define request and response headers, status codes, HTTP methods, URL conventions, media types, payload formats, query options, etc.

GraphQL and OData can be categorized as "Query Languages" tools.

GraphQL is an open source tool with 11.8K GitHub stars and 769 GitHub forks. Here's a link to GraphQL's open source repository on GitHub.

Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of GraphQL
Pros of OData
  • 74
    Schemas defined by the requests made by the user
  • 62
    Will replace RESTful interfaces
  • 60
    The future of API's
  • 48
    The future of databases
  • 12
    Self-documenting
  • 11
    Get many resources in a single request
  • 5
    Query Language
  • 5
    Ask for what you need, get exactly that
  • 3
    Fetch different resources in one request
  • 3
    Evolve your API without versions
  • 3
    Type system
  • 2
    Easy setup
  • 2
    GraphiQL
  • 2
    Ease of client creation
  • 1
    Good for apps that query at build time. (SSR/Gatsby)
  • 1
    Backed by Facebook
  • 1
    Easy to learn
  • 1
    "Open" document
  • 1
    Better versioning
  • 1
    Standard
  • 1
    1. Describe your data
  • 1
    Fast prototyping
  • 7
    Patterns for paging, sorting, filtering
  • 5
    ISO Standard
  • 3
    RESTful
  • 3
    Query Language
  • 3
    No overfetching, no underfetching
  • 2
    Batch requests
  • 2
    Get many resources in a single request
  • 2
    Ask for what you need, get exactly that
  • 2
    Self-documenting
  • 2
    Bulk requests ("array upsert")
  • 1
    Resource Modification Language
  • 1
    Resource model defines conventional operations
  • 1
    Evolve your API by following the compatibility rules

Sign up to add or upvote prosMake informed product decisions

Cons of GraphQL
Cons of OData
  • 4
    Hard to migrate from GraphQL to another technology
  • 4
    More code to type.
  • 2
    Takes longer to build compared to schemaless.
  • 1
    All the pros sound like NFT pitches
  • 1
    Works just like any other API at runtime
  • 1
    Overwhelming, no "baby steps" documentation

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 OData?

It is an ISO/IEC approved, OASIS standard that defines a set of best practices for building and consuming RESTful APIs. It helps you focus on your business logic while building RESTful APIs without having to worry about the various approaches to define request and response headers, status codes, HTTP methods, URL conventions, media types, payload formats, query options, etc.

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

What companies use GraphQL?
What companies use OData?
See which teams inside your own company are using GraphQL or OData.
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 OData?

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

Blog Posts

GitHubDockerReact+17
35
34352
GitHubPythonNode.js+47
53
71248
What are some alternatives to GraphQL and OData?
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