Skip to content

⚓ Minimalist HTTP client for JSON payloads.

Notifications You must be signed in to change notification settings

brianleroux/tiny-json-http

Repository files navigation

tiny-json-http

Minimalist HTTP client for GET, POST, PUT, PATCH and DELETE JSON payloads

  • Zero dependencies: perfect for AWS Lambda
  • Sensible default: assumes buffered JSON responses
  • System symmetry: Node style errback API, or Promises for use with Async/Await
npm i tiny-json-http --save

API

Read methods

  • tiny.get(options[, callback])
  • tiny.head(options[, callback])
  • tiny.options(options[, callback])

Write methods

  • tiny.post(options[, callback])
  • tiny.put(options[, callback])
  • tiny.patch(options[, callback])
  • tiny.del(options[, callback)]

*callback is optional, tiny methods will return a promise if no callback is provided

Options

  • url required
  • data form vars for tiny.post, tiny.put, tiny.patch, and tiny.delete otherwise querystring vars for tiny.get
  • headers key/value map used for headers (including support for uploading files with multipart/form-data)
  • buffer if set to true the response body is returned as a buffer

Callback values

  • err a real javascript Error if there was one
  • data an object with headers and body keys

Promises

  • if no callback is provided to the tiny-json-http methods, a promise is returned
  • perfect for use of async/await

Examples

With Async / Await

var tiny = require('tiny-json-http')
var url = 'http://www.randomkittengenerator.com'

;(async function _iife() {
  try {
    console.log(await tiny.get({url}))
  } catch (err) {
    console.log('ruh roh!', err)
  }
})();

With Callback

var tiny = require('tiny-json-http')
var url = 'http://www.randomkittengenerator.com'

tiny.get({url}, function _get(err, result) {
  if (err) {
    console.log('ruh roh!', err)
  }
  else {
    console.log(result)
  }
})

Check out the tests for more examples! 💟

About

⚓ Minimalist HTTP client for JSON payloads.

Resources

Stars

Watchers

Forks

Packages

No packages published