To be fair, I feel like this fact means GraphQL does sit at a higher level of abstraction than "vanilla REST", which does make them not-so-comparable.
This fact should be emphasized. REST is just an architectural style, and it's absurd to claim that an architectural style bars developers from implementing specific functionalities.
It's even more absurd to compare a very specific implementation of a specific interface with an architectural style used to design and implement interfaces.
It seems to me that this whole GraphQL vs REST debate has absolutely nothing to do with REST or even HTTP APIs, and is actually a discussion about how reusing a ready-made solution developed by third-parties has some advantages over having to roll your own.
You can see some oData examples here: https://www.odata.org/getting-started/basic-tutorial/#reques...
This.
Sometimes I wonder if graphql proponents either are unaware of established REST strategies and tooling or if they intentionally turn a blind eye .
But I'd love to see an REST-based GraphiQL equivalent to prove this wrong: https://github.com/graphql/graphiql
batch means you can do things like combine these:
GET /serviceRoot/Airports GET /serviceRoot/People
into one request (and get the results in one response)
I believe that's what the poster was asking.
Here's a link to a different example from the OData site: https://www.odata.org/getting-started/advanced-tutorial/#bat...
You're using the word "join". I'm not sure if you meant that in a relational sense or not. If yes, then maybe you're wondering if you can get airports with their related people, or people with their related airports in one request with OData. Again, the answer is yes.
The oData contract, $metadata, describes an entire domain model, including associations between entities. You can use expand to join entities over these associations.
You can request multiple queries in one http operation using batch requests: https://www.odata.org/getting-started/advanced-tutorial/#bat...
Otherwise I could claim ISAM is just like a SQL database because MySQL is a SQL database built on top of ISAM.