What is the difference between Axios and SuperAgent libraries? [closed]
Asked Answered
L

2

12

I am learning JavaScript and I can see, in multiple big projects, SuperAgent is being used for HTTP Request. I am using Axios for learning purpose, but wondering what makes SuperAgent different to Axios?

Lodi answered 13/8, 2018 at 3:44 Comment(5)
See also: https://mcmap.net/q/910160/-axios-vs-superagentJeaz
Thank you @brad, but it's only answered in specific context, doesn't seem to cover all aspects.Lodi
There's an answer there that talks about a promise API vs. callback. Your question is very general... did you have any specific questions?Jeaz
Thank you. @Jeaz I am just looking to get brief overview of both libraries so I could know which one I should use going forward.Lodi
Experiment with both, use whatever works best for your use. Both are using the same underlying Node.js libraries.Jeaz
G
26

axios has more stars than superagent, check here

If you are doing front end, axios is probably more popular, e.g. vue uses axios, I am doing back end, either one works.

But just like one answer in Axios vs Superagent said "I’d base my decision on other factors, like which API you like better, and library size " I tried both and finally chose supergent b/c superagent has build-in retry

axios does not provide retry, https://github.com/axios/axios/issues/164. I really don't like the idea of introducing another module just for retry, not to mention there are already 2 different modules now, axios-retry vs retry-axios.

Besides, thru my limited test, this issue https://github.com/axios/axios/issues/553 has not been fully fixed.

Gastrostomy answered 2/12, 2018 at 7:24 Comment(2)
At the time I am writing this neither axios-retry or retry-axios work with axios 0.19.0 (released 4 months ago) 1. github.com/softonic/axios-retry/issues/94 2. github.com/JustinBeckwith/retry-axios/issues/62Lyons
As in 2023 there is another library called alova, which specifically aims to compete with axios, and alova also provides retryGastrostomy
O
15

superagent and axios are HTTP client libraries. They are both very mature and picking between the two ultimately comes down to preference. Here's what it looks like to make a POST request with a JSON body using each library:

// superagent
await request
  .post('/to/my/api') // URI
  .set('Authorization', authorizationKey) // Header
  .send({ foo: 'bar' })  // Body
  // then creates a promise that returns the response
  .then(res => res.body) 

/* axios */
// axios exclusively returns promises
// URI, body, request options are provided in one call
await request.post('/to/my/api', { 
  foo: 'bar'
}, {
  headers: {
    Authorization: authorizationKey
  }
}) 
Oblige answered 2/12, 2018 at 7:43 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.