What I meant (and probably poorly communicated) is that you don't necessarily need GraphQL and its challenges to get type safety and prevent overfetching. There's a nice REST pattern that can do that, which happens to be what Remxi uses.
Thinking through it some more:
- Maybe it's more that I've seen teams reach for GraphQL when another option would've been simpler.
- You can get many of GraphQL's benefits with other, simpler solutions.
- But when you do need GraphQL, of course go for that.
I’m having a bit of trouble getting the point here, this is more sort of just a passing thought I guess. But yeah, like the article ends with, querying with graphql from the front end, and using loaders from Remix are 2 choices for different situations where they’re ideal. (Unlike the superlative title implies)
What I should've said: GraphQL isn't the only option for type safety and preventing over fetching. There's a nice REST pattern which Remix happens to do.
If I were using Remix, I'd probably trigger GraphQL queries from route loaders, one doesn't really obviate the other. Yes, there are challenges with using GraphQL well, but there's no inherent tension between it and the loader approach.
this is so bizarre? I use GraphQL with Remix in my loader. It's a great combination. 7ms response from SQL. I can't understand the article. Sorry this person doesn't understand GraphQL nor Remix. might be AI generated
17 comments
[ 3.0 ms ] story [ 53.2 ms ] threadWhat I meant (and probably poorly communicated) is that you don't necessarily need GraphQL and its challenges to get type safety and prevent overfetching. There's a nice REST pattern that can do that, which happens to be what Remxi uses.
Graphql is designed to be flexible for when you want to expose your data to many clients who may be other teams and need different models of the data.
Obviously, if you just need a simple consistent API, there's no need for all the extra complexity.
My thinking here was kind of half-baked.
Thinking through it some more: - Maybe it's more that I've seen teams reach for GraphQL when another option would've been simpler. - You can get many of GraphQL's benefits with other, simpler solutions. - But when you do need GraphQL, of course go for that.
What I should've said: GraphQL isn't the only option for type safety and preventing over fetching. There's a nice REST pattern which Remix happens to do.
Maybe thinking through what I was thinking a bit more:
GraphQL isn't the only option for preventing overfetching, and has some downsides. For example, the pattern Remix uses.
REST/GraphQL is the result of different teams/orgs working on frontend and backend.
Backend-for-frontend/Remix is the result of the same team working on frontend and backend.
GraphQL from a Remix loader is doable. Works great if you have an existing GraphQL you want to consume.
If you don't, though, I prefer avoiding the extra HTTP request.