diff options
Diffstat (limited to 'node_modules/simple-get/README.md')
| -rw-r--r-- | node_modules/simple-get/README.md | 319 |
1 files changed, 0 insertions, 319 deletions
diff --git a/node_modules/simple-get/README.md b/node_modules/simple-get/README.md deleted file mode 100644 index 0fecf37..0000000 --- a/node_modules/simple-get/README.md +++ /dev/null @@ -1,319 +0,0 @@ -# simple-get [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] - -[travis-image]: https://img.shields.io/travis/feross/simple-get/master.svg -[travis-url]: https://travis-ci.org/feross/simple-get -[npm-image]: https://img.shields.io/npm/v/simple-get.svg -[npm-url]: https://npmjs.org/package/simple-get -[downloads-image]: https://img.shields.io/npm/dm/simple-get.svg -[downloads-url]: https://npmjs.org/package/simple-get -[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg -[standard-url]: https://standardjs.com - -### Simplest way to make http get requests - -## features - -This module is the lightest possible wrapper on top of node.js `http`, but supporting these essential features: - -- follows redirects -- automatically handles gzip/deflate responses -- supports HTTPS -- supports specifying a timeout -- supports convenience `url` key so there's no need to use `url.parse` on the url when specifying options -- composes well with npm packages for features like cookies, proxies, form data, & OAuth - -All this in < 100 lines of code. - -## install - -``` -npm install simple-get -``` - -## usage - -Note, all these examples also work in the browser with [browserify](http://browserify.org/). - -### simple GET request - -Doesn't get easier than this: - -```js -const get = require('simple-get') - -get('http://example.com', function (err, res) { - if (err) throw err - console.log(res.statusCode) // 200 - res.pipe(process.stdout) // `res` is a stream -}) -``` - -### even simpler GET request - -If you just want the data, and don't want to deal with streams: - -```js -const get = require('simple-get') - -get.concat('http://example.com', function (err, res, data) { - if (err) throw err - console.log(res.statusCode) // 200 - console.log(data) // Buffer('this is the server response') -}) -``` - -### POST, PUT, PATCH, HEAD, DELETE support - -For `POST`, call `get.post` or use option `{ method: 'POST' }`. - -```js -const get = require('simple-get') - -const opts = { - url: 'http://example.com', - body: 'this is the POST body' -} -get.post(opts, function (err, res) { - if (err) throw err - res.pipe(process.stdout) // `res` is a stream -}) -``` - -#### A more complex example: - -```js -const get = require('simple-get') - -get({ - url: 'http://example.com', - method: 'POST', - body: 'this is the POST body', - - // simple-get accepts all options that node.js `http` accepts - // See: http://nodejs.org/api/http.html#http_http_request_options_callback - headers: { - 'user-agent': 'my cool app' - } -}, function (err, res) { - if (err) throw err - - // All properties/methods from http.IncomingResponse are available, - // even if a gunzip/inflate transform stream was returned. - // See: http://nodejs.org/api/http.html#http_http_incomingmessage - res.setTimeout(10000) - console.log(res.headers) - - res.on('data', function (chunk) { - // `chunk` is the decoded response, after it's been gunzipped or inflated - // (if applicable) - console.log('got a chunk of the response: ' + chunk) - })) - -}) -``` - -### JSON - -You can serialize/deserialize request and response with JSON: - -```js -const get = require('simple-get') - -const opts = { - method: 'POST', - url: 'http://example.com', - body: { - key: 'value' - }, - json: true -} -get.concat(opts, function (err, res, data) { - if (err) throw err - console.log(data.key) // `data` is an object -}) -``` - -### Timeout - -You can set a timeout (in milliseconds) on the request with the `timeout` option. -If the request takes longer than `timeout` to complete, then the entire request -will fail with an `Error`. - -```js -const get = require('simple-get') - -const opts = { - url: 'http://example.com', - timeout: 2000 // 2 second timeout -} - -get(opts, function (err, res) {}) -``` - -### One Quick Tip - -It's a good idea to set the `'user-agent'` header so the provider can more easily -see how their resource is used. - -```js -const get = require('simple-get') -const pkg = require('./package.json') - -get('http://example.com', { - headers: { - 'user-agent': `my-module/${pkg.version} (https://github.com/username/my-module)` - } -}) -``` - -### Proxies - -You can use the [`tunnel`](https://github.com/koichik/node-tunnel) module with the -`agent` option to work with proxies: - -```js -const get = require('simple-get') -const tunnel = require('tunnel') - -const opts = { - url: 'http://example.com', - agent: tunnel.httpOverHttp({ - proxy: { - host: 'localhost' - } - }) -} - -get(opts, function (err, res) {}) -``` - -### Cookies - -You can use the [`cookie`](https://github.com/jshttp/cookie) module to include -cookies in a request: - -```js -const get = require('simple-get') -const cookie = require('cookie') - -const opts = { - url: 'http://example.com', - headers: { - cookie: cookie.serialize('foo', 'bar') - } -} - -get(opts, function (err, res) {}) -``` - -### Form data - -You can use the [`form-data`](https://github.com/form-data/form-data) module to -create POST request with form data: - -```js -const fs = require('fs') -const get = require('simple-get') -const FormData = require('form-data') -const form = new FormData() - -form.append('my_file', fs.createReadStream('/foo/bar.jpg')) - -const opts = { - url: 'http://example.com', - body: form -} - -get.post(opts, function (err, res) {}) -``` - -#### Or, include `application/x-www-form-urlencoded` form data manually: - -```js -const get = require('simple-get') - -const opts = { - url: 'http://example.com', - form: { - key: 'value' - } -} -get.post(opts, function (err, res) {}) -``` - -### Specifically disallowing redirects - -```js -const get = require('simple-get') - -const opts = { - url: 'http://example.com/will-redirect-elsewhere', - followRedirects: false -} -// res.statusCode will be 301, no error thrown -get(opts, function (err, res) {}) -``` - -### OAuth - -You can use the [`oauth-1.0a`](https://github.com/ddo/oauth-1.0a) module to create -a signed OAuth request: - -```js -const get = require('simple-get') -const crypto = require('crypto') -const OAuth = require('oauth-1.0a') - -const oauth = OAuth({ - consumer: { - key: process.env.CONSUMER_KEY, - secret: process.env.CONSUMER_SECRET - }, - signature_method: 'HMAC-SHA1', - hash_function: (baseString, key) => crypto.createHmac('sha1', key).update(baseString).digest('base64') -}) - -const token = { - key: process.env.ACCESS_TOKEN, - secret: process.env.ACCESS_TOKEN_SECRET -} - -const url = 'https://api.twitter.com/1.1/statuses/home_timeline.json' - -const opts = { - url: url, - headers: oauth.toHeader(oauth.authorize({url, method: 'GET'}, token)), - json: true -} - -get(opts, function (err, res) {}) -``` - -### Throttle requests - -You can use [limiter](https://github.com/jhurliman/node-rate-limiter) to throttle requests. This is useful when calling an API that is rate limited. - -```js -const simpleGet = require('simple-get') -const RateLimiter = require('limiter').RateLimiter -const limiter = new RateLimiter(1, 'second') - -const get = (opts, cb) => limiter.removeTokens(1, () => simpleGet(opts, cb)) -get.concat = (opts, cb) => limiter.removeTokens(1, () => simpleGet.concat(opts, cb)) - -var opts = { - url: 'http://example.com' -} - -get.concat(opts, processResult) -get.concat(opts, processResult) - -function processResult (err, res, data) { - if (err) throw err - console.log(data.toString()) -} -``` - -## license - -MIT. Copyright (c) [Feross Aboukhadijeh](http://feross.org). |