Very simple API request fails with Request.js, works with Curl

408 views Asked by At

Simple query to an API, the curl request works, but fails when I try to utilize the request NPM module to perform the request.

Curl:

curl "https://api.squarespace.com/1.0/commerce/orders?modifiedAfter=2019-11-01T12:00:00Z&modifiedBefore=2019-11-15T12:00:00Z" \
  -H "Authorization: Bearer abcde"

Request:

  const response = await request({
     method: 'GET',
     uri:
        'https://api.squarespace.com/1.0/commerce/orders?modifiedAfter=2019-11-01T12:00:00Z&modifiedBefore=2019-11-15T12:00:00Z',
     headers: {
        Authorization: 'Bearer abcde'
     }
  });

Request succeeded with curl, immediate error with request js reporting status code 400. Can you tell me what is amiss with my request usage, and how it even differs from the request generated by curl?

Latest version of request is being used.

1

There are 1 answers

2
rom1bl On

The key in your request options must be 'url' and not 'uri' And don't forget to set the callback function that wille be called (so you will also see the error returned when there is one)

const request = require('request');

const options = {
  url: 'https://api.squarespace.com/1.0/commerce/orders?modifiedAfter=2019-11-01T12:00:00Z&modifiedBefore=2019-11-15T12:00:00Z',
  headers: {
     'Authorization': `Bearer abcde`
  }
};

function callback(error, response, body) {
  console.error('error:', error); 
  console.log('statusCode:', response && response.statusCode); 
  console.log('body:', body); 
}

request(options, callback);