Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?

like image 621
Ishan Patel Avatar asked Aug 13 '18 03:08

Ishan Patel


2 Answers

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.

like image 193
Qiulang 邱朗 Avatar answered Sep 20 '22 16:09

Qiulang 邱朗


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
  }
}) 
like image 25
dimiguel Avatar answered Sep 20 '22 16:09

dimiguel