4 ms·
node fetch is WAY better than axios (easier to use/understand, simpler); didn't really know people were still using axios
by yawnxyz 1y ago
node fetch is WAY better than axios (easier to use/understand, simpler); didn't really know people were still using axios
- Raed667 1y agoI do miss the axios extensions tho, it was very easy to add rate-limits, throttling, retry strategies, cache, logging .. You can obviously do that with fetch but it is more fragmented and more boilerplate
- farkin88 1y agoTotally get that! I think it depends on your context. For Lambda where every KB and millisecond counts, native fetch wins, but for a full app where you need robust HTTP handling, the axios plugin ecosystem was honestly pretty nice. The fragmentation with fetch libraries is real. You end up evaluating 5 different retry packages instead of just grabbing axios-retry.
- hiccuphippo 1y agoSounds like there's space for an axios-like library built on top of fetch.
- lllllllllllll6 1y ago[dead]
- farkin88 1y agoI think that's the sweet spot. Native fetch performance with axios-style conveniences. Some libraries are moving in that direction, but nothing's really nailed it yet. The challenge is probably keeping it lightweight while still solving the evaluating 5 retry packages problem.
- crabmusket 1y agoIs this what you're looking for? https://www.npmjs.com/package/ky https://www.npmjs.com/package/ky I haven't used it but the weekly download count seems robust.
- farkin88 1y agoKy is definitely one of the libraries moving in that direction. Good adoption based on those download numbers, but I think the ecosystem is still a bit fragmented. You've got ky, ofetch, wretch, etc. all solving similar problems. But yeah, ky is probably the strongest contender right now, in my opinion.
- hokkos 1y agoLike axios can do it if you specify the fetch backend, it just won't do the .json() asynchronously.
- tracker1 1y agoI'm actually not a big fan of the async .json from fetch, because when it fails (because "not json"), then you can't peak at the text instead. Of course, you can clone the response, apparently, and then read text from the clone... and if you're wrapping for some other handling, it isn't too bad.
- farkin88 1y agoRight?! I think a lot of devs got stuck in the axios habit from before Node 18 when fetch wasn't built-in. Plus axios has that batteries included feel with interceptors, auto-JSON parsing, etc. But for most use cases, native fetch + a few lines of wrapper code beats dragging in a whole dependency.
- benoau 1y agoaxios got discontinued years ago I thought, nobody should still be using it!
- creatonez 1y agoNo? Its last update was 12 days ago
- reactordev 1y agoYou still see axios used in amateur tutorials and stuff on dev.to and similar sites. There’s also a lot of legacy out there.
- bravesoul2 1y agoAI is going to bring that back like an 80s disco playing Wham. If you gonna do it do it wrong...
- reactordev 1y agohahaha, I see it all the time in my responses. I immediately reject.
- macNchz 1y agoI've had Claude decide to replace my existing fetch-based API calls with Axios (not installed or present at all in the project), apropos of nothing during an unrelated change.
- int_19h 1y agoI had Gemini correct my code using Google's new LLM API to use the old one.
- mcv 1y agoThis is all very good news. I just got an alert about a vulnerability in a dependency of axios (it's an older project). Getting rid of these dependencies is a much more attractive solution than merely upgrading them.
- thewisenerd 1y agoisn't upgrading node going to ba bigger challenge? (if you're on a node version that's no longer receiving maintenance)
- mcv 1y agoNo idea how much compatibility breakage there is, but it's probably going to have to happen at some point, and reducing dependencies sounds worth it to me.
- looshch 1y agowhat about interceptors?
- ramesh31 1y agoInterceptors (and extensions in general) are the killer feature for axios still. Fetch is great for scripts, but I wouldn't build an application on it entirely; you'll be rewriting a lot or piecing together other libs.