@xxlabaza/request v1.0.0
Overview
request
- is a set of helper wrappers around node-fetch
, which provides more convenient and safe approach to reqeust remote HTTP
/HTTPS
resources.
Usage
installation:
$> npm install --save @xxlabaza/request
Example:
import { Reqeust } from '@xxlabaza/request'
const result = await Reqeust.doGet('http://example.com/resource');
if (result.isFailure()) {
console.log(result.error);
process.exit(1);
}
const response = result.value;
console.log(`status=${response.status.code}`);
if (response.hasJson()) {
console.log(`body=${JSON.stringify(response.json)}`);
} else if (response.hasText()) {
console.log(`body=${response.text}`);
}
POST
JSON request example:
import { Request } from '@xxlabaza/request';
const result = await Reqeust.post('http://example.com/resource')
.header('X-Custom-Header', '123')
.query('id', '1234')
.json({ text: 'Hello world!', key: true })
.execute();
The different ways to write the same request:
import { Request } from '@xxlabaza/request';
const response = await Request.doGet('http://example.com/resource').orError();
import { Request } from '@xxlabaza/request';
const result = await Request.doGet('http://example.com/resource');
if (result.isFailure()) {
throw result.error;
}
const response = result.value;
import { Request } from '@xxlabaza/request';
const result = await Request.get('http://example.com/resource').execute();
if (result.isFailure()) {
throw result.error;
}
const response = result.value;
import { Request } from '@xxlabaza/request';
const request = Request
.get('http://example.com/resource')
.build();
const result = await request.execute();
if (result.isFailure()) {
throw result.error;
}
const response = result.value;
import { Request, HttpMethod } from '@xxlabaza/request';
const request = Request
.builder('http://example.com/resource')
.method(HttpMethod.GET)
.build();
const result = await request.execute();
if (result.isFailure()) {
throw result.error;
}
const response = result.value;
Development
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Building
To build the project, do the following:
$> npm run build
...
Running the tests
To run the project's test, do the following:
$> npm test
...
Test Suites: 1 passed, 1 total
Tests: 6 passed, 6 total
Snapshots: 0 total
Time: 1.233 s
Ran all test suites.
Changelog
To see what has changed in recent versions of the project, see the changelog file.
Contributing
Please read contributing file for details on my code of conduct, and the process for submitting pull requests to me.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Authors
- Artem Labazin - creator and the main developer
License
This project is licensed under the Apache License 2.0 License - see the license file for details
4 years ago