const { Request } = require('@janiscommerce/request');
If you are using v1.x see the migration guide |
Making a custom request.
β οΈ When the response status code is greater than or equal to 400 throws an error.
try {
const { statusCode, body } = await Request.get('https://reqres.in/api/users');
console.log(`Status code: ${statusCode}`); // Status code: 200
console.log(body); // { message: 'OK' }
} catch(error){
console.log(error)
/*
{
name: 'RequestError'
message: 'Request failed: internal error',
code: 1
}
*/
}
Making a custom safe request
β οΈ If you want to handle the error safely. NOT THROW
const { RequestSafe } = require('@janiscommerce/request');
const { statusCode, body } = await RequestSafe.get('https://reqres.in/api/users');
console.log(`Status code: ${statusCode}`); // Status code: 500
console.log(body); // { message: 'internal error' }
- Request
Simple static class to make external request using http and http node core packages
- RequestSafe
Extend from Request. Its use is the same but not throw an error when the response status code is greater than or equal to 400
- PathTemplate :
string
A string path. Supports templating in "{variable}" format. IE: "/api/users/{userId}/contacts"
- CallOptions :
object
- RequestOptions :
object
- RequestResponse :
object
Simple static class to make external request using http and http node core packages
Kind: global class
- Request
To get the last request http method, endpoint, headers and body
Kind: static property of Request
To get the last response status code, headers and body
Kind: static property of Request
Request.get(endpoint, [options]) β Promise.<RequestResponse>
To make a GET request
Kind: static method of Request
Param | Type | Default |
---|---|---|
endpoint | string |
|
[options] | RequestOptions |
{} |
Request.post(endpoint, body, [options]) β Promise.<RequestResponse>
To make a POST request
Kind: static method of Request
Param | Type | Default |
---|---|---|
endpoint | string |
|
body | any |
|
[options] | RequestOptions |
{} |
Request.put(endpoint, body, [options]) β Promise.<RequestResponse>
To make a PUT request
Kind: static method of Request
Param | Type | Default |
---|---|---|
endpoint | string |
|
body | any |
|
[options] | RequestOptions |
{} |
Request.patch(endpoint, body, [options]) β Promise.<RequestResponse>
To make a PATCH request
Kind: static method of Request
Param | Type | Default |
---|---|---|
endpoint | string |
|
body | any |
|
[options] | RequestOptions |
{} |
Request.delete(endpoint, [options]) β Promise.<RequestResponse>
To make a DELETE request
Kind: static method of Request
Param | Type | Default |
---|---|---|
endpoint | string |
|
[options] | RequestOptions |
{} |
Request.call(options) β Promise.<RequestResponse>
A string path. Supports templating in "{variable}" format. IE: "/api/users/{userId}/contacts"
Kind: global typedef Properties
Name | Type | Description |
---|---|---|
headers | object |
Custom headers on request. Define as { [headerName]: headerValue } |
pathParams | object |
Replace variables in path declared as "{variable}". Define structure as { [variableNameInPath]: valueForReplace } |
queryParams | object |
Query parameters / filters on request. Define structure as { [queryVariableName]: value } |
path | PathTemplate |
The request path |
strictMode | boolean |
When this flag is set as true, the request response content-type should be application/json or error will thrown |
endpoint | string |
The request endpoint. Protocol and path are optionals. When no protocol specified, http goes by default. Supports *PathTemplate |
method | string |
The request method. 'GET' is set by default |
body | any |
The request body (if request method accepts it). Can be a valid object, Array, string, or any serializable type. |
Kind: global typedef Properties
Name | Type | Description |
---|---|---|
headers | object |
Custom headers on request. Define as { [headerName]: headerValue } |
pathParams | object |
Replace variables in path declared as "{variable}". Define structure as { [variableNameInPath]: valueForReplace } |
queryParams | object |
Query parameters / filters on request. Define structure as { [queryVariableName]: value } |
path | PathTemplate |
The request path |
strictMode | boolean |
When this flag is set as true, the request response content-type should be application/json or error will thrown |
Kind: global typedef Properties
Name | Type | Description |
---|---|---|
complete | boolean |
Flag that represents that if operation was completed |
aborted | boolean |
Flag that represents that if operation was aborted |
httpVersion | string |
String with http protocol version of the response sent |
rawHeaders | Array.<String> |
Request headers as array of srings |
headers | object |
Response headers. Formatted as { [headerName]: headerValue } |
statusCode | number |
Response status code |
statusMessage | string |
Response status message |
body | any |
Response body. Can be a valid object, Array, string, or any serializable type. |
rawBody | Array |
Response body without serialization. |
originRequest | CallOptions |
Used to make another request based on the origin request. Ie: For retry the same request |
Now Request
, in addition to being required in another way, throws an error if the response status code if >= 400
If you want to keep the functionality of v1.x must require and change RequestSafe
to your old Request
as follows
// old way to require the package
const Request = require('@janiscommerce/request');
// new way
const { RequestSafe } = require('@janiscommerce/request');