Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

rx-http-request

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rx-http-request

The world-famous HTTP client Request now RxJS compliant, wrote in full ES2015 for client and server side.

  • 1.2.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

RX-HTTP-Request

ES2015 logo ReactiveX logo

NPM

Build Status Coverage Status Dependencies DevDependencies

The world-famous HTTP client Request now RxJS compliant, wrote in full ES2015 for client and server side.

Table of contents

Super simple to use

RX-HTTP-Request is designed to be the simplest way possible to make http calls.

It's fully ES2015 wrotten so you can import it :

import {RxHttpRequest} from 'rx-http-request';

or use CommonJS:

const RxHttpRequest = require('rx-http-request').RxHttpRequest;

Now, it's easy to perform a HTTP request:

RxHttpRequest.get('http://www.google.fr').subscribe(
    (data) => {

        if (data.response.statusCode === 200) {
            console.log(data.body); // Show the HTML for the Google homepage.
        }
    },
    (err) => console.error(err) // Show error in console
);

Browser compatibility

RX-HTTP-Request can be used in your favorite browser to have all features in your own front application.

Just import browser.js script and enjoy:

<script src="node_modules/rx-http-request/browser.js" type="application/javascript"></script>
<script type="application/javascript">
    const RxHttpRequest = rhr.RxHttpRequest;
    
    RxHttpRequest.get('http://www.google.fr').subscribe(
        function(data){
    
            if (data.response.statusCode === 200) {
                console.log(data.body); // Show the HTML for the Google homepage.
            }
        },
        function(err){
            console.error(err) // Show error in console
        }
    );
</script>

API in Detail

RX-HTTP-Request uses Request API to perform calls and returns RxJS.Observable.

All options to pass to API methods can be found here.

All methods to execute on response object can be found here.


.request

Returns the original Request API to perform calls without RxJS.Observable response but with a callback method.

import {RxHttpRequest} from 'rx-http-request';

RxHttpRequest.request({uri: 'http://www.google.fr'}, (error, response, body) => {

    if (!error && response.statusCode == 200) {
        console.log(body); // Show the HTML for the Google homepage.
    }
});

Back to top

.defaults(options)

This method returns a wrapper around the normal RX-HTTP-Request API that defaults to whatever options you pass to it.

Parameters:

options (required): Original Request options object with default values foreach next requests

Response:

new RxHttpRequest instance

Note: RxHttpRequest.defaults() does not modify the global API; instead, it returns a wrapper that has your default settings applied to it.

Note: You can call .defaults() on the wrapper that is returned from RxHttpRequest.defaults() to add/override defaults that were previously defaulted.

For example:

// requests using baseRequest will set the 'x-token' header
const baseRequest = RxHttpRequest.defaults({
    headers: {'x-token': 'my-token'}
});

// requests using specialRequest will include the 'x-token' header set in
// baseRequest and will also include the 'special' header
const specialRequest = baseRequest.defaults({
    headers: {special: 'special value'}
});

Back to top

.get(uri[, options])

Performs a request with get http method.

Parameters:

  • uri (required): The uri where request will be performed
  • options (optional): Original Request options object

Response:

RxJS.Observable instance

Crawl a webpage
import {RxHttpRequest} from 'rx-http-request';

RxHttpRequest.get('http://www.google.fr').subscribe(
    (data) => {

        if (data.response.statusCode === 200) {
            console.log(data.body); // Show the HTML for the Google homepage.
        }
    },
    (err) => console.error(err) // Show error in console
);
GET something from a JSON REST API
import {RxHttpRequest} from 'rx-http-request';

const options = {
    qs: {
        access_token: 'xxxxx xxxxx' // -> uri + '?access_token=xxxxx%20xxxxx'
    },
    headers: {
        'User-Agent': 'RX-HTTP-Request'
    },
    json: true // Automatically parses the JSON string in the response
};

RxHttpRequest.get('https://api.github.com/user/repos', options).subscribe(
    (data) => {

        if (data.response.statusCode === 200) {
            console.log(data.body); // Show the JSON response object.
        }
    },
    (err) => console.error(err) // Show error in console
);

Back to top

.post(uri[, options])

Performs a request with post http method.

Parameters:

  • uri (required): The uri where request will be performed
  • options (optional): Original Request options object

Response:

RxJS.Observable instance

POST data to a JSON REST API
import {RxHttpRequest} from 'rx-http-request';

const options = {
    body: {
        some: 'payload'
    },
    json: true // Automatically stringifies the body to JSON
};

RxHttpRequest.post('http://posttestserver.com/posts', options).subscribe(
    (data) => {

        if (data.response.statusCode === 201) {
            console.log(data.body); // Show the JSON response object.
        }
    },
    (err) => console.error(err) // Show error in console
);
POST like HTML forms do
import {RxHttpRequest} from 'rx-http-request';

const options = {
    form: {
        some: 'payload' // Will be urlencoded
    },
    headers: {
        /* 'content-type': 'application/x-www-form-urlencoded' */ // Set automatically
    }
};

RxHttpRequest.post('http://posttestserver.com/posts', options).subscribe(
    (data) => {

        if (data.response.statusCode === 201) {
            console.log(data.body); // POST succeeded...
        }
    },
    (err) => console.error(err) // Show error in console
);

Back to top

.put(uri[, options])

Performs a request with put http method.

Parameters:

  • uri (required): The uri where request will be performed
  • options (optional): Original Request options object

Response:

RxJS.Observable instance

import {RxHttpRequest} from 'rx-http-request';

RxHttpRequest.put(uri).subscribe(...);

Back to top

.patch(uri[, options])

Performs a request with patch http method.

Parameters:

  • uri (required): The uri where request will be performed
  • options (optional): Original Request options object

Response:

RxJS.Observable instance

import {RxHttpRequest} from 'rx-http-request';

RxHttpRequest.patch(uri).subscribe(...);

Back to top

.delete(uri[, options])

Performs a request with delete http method.

Parameters:

  • uri (required): The uri where request will be performed
  • options (optional): Original Request options object

Response:

RxJS.Observable instance

import {RxHttpRequest} from 'rx-http-request';

RxHttpRequest.delete(uri).subscribe(...);

Back to top

.head(uri[, options])

Parameters:

  • uri (required): The uri where request will be performed
  • options (optional): Original Request options object

Response:

RxJS.Observable instance

Performs a request with head http method.

import {RxHttpRequest} from 'rx-http-request';

RxHttpRequest.head(uri).subscribe(...);

Back to top

Contributing

To set up your development environment:

  1. clone the repo to your workspace,
  2. in the shell cd to the main folder,
  3. hit npm install,
  4. hit npm install gulp -g if you haven't installed gulp globally yet, and
  5. run gulp. (Or run node ./node_modules/.bin/gulp if you don't want to install gulp globally.)

gulp watches all source files and if you save some changes it will lint the code and execute all tests. The test coverage report can be viewed from ./coverage/lcov-report/index.html.

Back to top

Change History

  • v1.2.0 (2016-09-29)
    • New package version for RxJS and Request
    • New ES6 features
    • Issue 1
    • Issue 2
  • v1.1.0 (2016-03-28)
    • Browserify to have browser compatibility
  • v1.0.0 (2016-03-27)
    • Carefully rewritten from scratch to make RX-HTTP-Request a drop-in replacement for Request

Back to top

License

Copyright (c) 2016 Nicolas Jessel Licensed under the MIT license.

Back to top

Keywords

FAQs

Package last updated on 29 Sep 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc