Live data from Hacker News

GraphQL Didn't Kill REST

graphqlme.com

1–10 of 19 posts

Re: GraphQL Didn't Kill REST

#3
Is REST perfect? Probably not. But it certainly does its job, and that's why most middle-tier APIs these days, whether it be those that power web applications or mobile apps, are in REST, with the backend itself being written in a variety of languages (PHP, Python, Java, C#, etc).

I will admit that core REST doesn't support basic "querying" functionality, or even things like pagination, filtering, sorting, etc, which is why there are a set of standards, or best practices on top of REST that aim to standardize those commonly used patterns. [1] [2] [3]

Finally REST, whether by design or not, follows the KISS principle (Keep It Simple and Stupid), and that's probably why it's gained as much traction as it has over the years.

Want to get a user object? GET /user/ Want to update it? POST or PUT /user/ Get a list of all users? GET /user/

If you look at just the "basic" examples for GraphQL, you will understand why it's never going to replace REST in its current form.

[1] Microsoft's OData: https://www.odata.org/ [2] https://www.moesif.com/blog/technical/api-design/REST-API-De... [3] https://stackoverflow.com/questions/207477/restful-url-desig...

Re: GraphQL Didn't Kill REST

#5
IMHO what makes or breaks a paradigm like REST or GraphQL in real-life is the state of tooling made by third-parties to enable its adoption in the workplace or personal projects.

Working in Python-land I'm pretty confident REST wouldn't have been as ubiquitous if it wasn't for tools like Flask, marshmallow, and the myriad of other tools.

Having taken up GraphQL in personal projects I can say that at least in Python the tooling just ain't there so until it gets there I don't see GraphQL killing anything.

Re: GraphQL Didn't Kill REST

#6

IMHO what makes or breaks a paradigm like REST or GraphQL in real-life is the state of tooling made by third-parties to enable its adoption in the workplace or personal projects. Working in Python-land I'm pretty confident REST wouldn't have been as ubiquitous if it wasn't for tools like Flask, marshmallow, and the myriad of other tools. Having taken up GraphQL in personal projects I can say that at least in Python t…

Last year around this time I tried to implement a bare bones graqhql API with Django. I kept having to write boilerplate code to get it working.

I quickly learned why Django rest framework is the defacto standard... The tooling is just uncomparibly better

Re: GraphQL Didn't Kill REST

#7

IMHO what makes or breaks a paradigm like REST or GraphQL in real-life is the state of tooling made by third-parties to enable its adoption in the workplace or personal projects. Working in Python-land I'm pretty confident REST wouldn't have been as ubiquitous if it wasn't for tools like Flask, marshmallow, and the myriad of other tools. Having taken up GraphQL in personal projects I can say that at least in Python t…

I think serverless GraphQL is the future of the backend. And honestly, not as familiar with the Python landscape but if you use tools like Prisma (Node-based) or AppSync (AWS Lambda based), a lot of your GraphQL queries and mutations can be generated automatically based on a typed schema file.

Re: GraphQL Didn't Kill REST

#8
post #3

Is REST perfect? Probably not. But it certainly does its job, and that's why most middle-tier APIs these days, whether it be those that power web applications or mobile apps, are in REST, with the backend itself being written in a variety of languages (PHP, Python, Java, C#, etc). I will admit that core REST doesn't support basic "querying" functionality, or even things like pagination, filtering, sorting, etc, which…

I can second OData, but i think it's important to know that OData has nothing to do with Microsoft anymore ( officially). The only thing is that they support it officially in the dot net environment. It's now an open protocol with lot's of integrations: https://www.odata.org/libraries/

But it's great to use though. You'll love it if you like Linq/lambda's.

/odata/Clients?$filter=Status eq 0 or LastLoggedIn is null

Re: GraphQL Didn't Kill REST

#9

IMHO what makes or breaks a paradigm like REST or GraphQL in real-life is the state of tooling made by third-parties to enable its adoption in the workplace or personal projects. Working in Python-land I'm pretty confident REST wouldn't have been as ubiquitous if it wasn't for tools like Flask, marshmallow, and the myriad of other tools. Having taken up GraphQL in personal projects I can say that at least in Python t…

Have you tried Graphene? [1] I haven't, but have read its documentation a lot, and it looks quite powerful.

I'm not happy that it introduces yet another data object library, but at least it's possible to build plugins for existing ones -- SQLAlchemy and Django are already there, and it would be nice to add ones for attrs, Schematics and of course the 3.7 native data classes.

Regarding the popularity of REST -- even if it wasn't intended for CRUD originally, it fits perfectly with that paradigm, and I think this is why many people were able to implement it easily when they started using it.

[1] http://graphene-python.org/

Post reply on HN