slumber
Port of Python's slumber library -- A library that makes consuming a RESTful API easier and more convenient
Last updated 9 years ago by m42am .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install slumber 
SYNC missed versions from official npm registry.

Slumber (Node.js version)

Build Status Dependency Status

NPM Badge

Port of the Python's slumber library in Node.js -- A library that makes consuming a RESTful API easier and more convenient

Node's Slumber is a Node.js library that provides convenient yet powerful object-oriented interface to RESTful APIs. It acts as a wrapper around the excellent request library and abstracts away the handling of URLs, serialization, and request processing.

QuickStart

  1. Install Node's Slumber

    $ npm install slumber
    
  2. Use Node's Slumber

Usage in CoffeeScript

slumber = require 'slumber'

# Connect to http://slumber.in/api/v1/ with the Basic Auth user/password of demo/demo
api = slumber.API 'http://slumber.in/api/v1/', { auth: ['demo', 'demo'] }, ->

  # GET http://slumber.in/api/v1/note/
  #     Note: Any kwargs passed to get(), post(), put(), delete() will be used as url parameters
  api('note').get (err, data) ->
    console.log err, data

  # ---

  callback = (err, data) ->
    console.log err, data

  # POST http://slumber.in/api/v1/note/
  new_post = api('note').post({'title': 'My Test Note', 'content': 'This is the content of my Test Note!'}, cb)

  # PUT http://slumber.in/api/v1/note/{id}/
  api('note')(new_post['id']).put({'content': 'I just changed the content of my Test Note!'}, cb)

  # PATCH http://slumber.in/api/v1/note/{id}/
  api('note')(new_post['id']).patch({'content': 'Wat!'}, cb)

  # GET http://slumber.in/api/v1/note/{id}/
  api('note')(new_post['id']).get(cb)

  # DELETE http://slumber.in/api/v1/note/{id}/
  api('note')(new_post['id']).delete(cb)

  api('resource').get {username: "example", api_key: "1639eb74e86717f410c640d2712557aac0e989c8"}, cb

  # GET http://slumber.in/api/v1/note/?title__startswith=Bacon
  api('note').get(title__startswith="Bacon", cb)

How to use callbacks

node-slumber uses a dynamic callback mechanism, based on the arity of the callback.

Depending on the callback arity, you will have:

  • with an arity of 1: function(err)
  • with an arity of 2: function(err, processedData)
  • with an arity of 3: function(err, fullRequestResponse, processedData)

Debug

node-slumber uses the debug package.

To enable debug you can use the environment variable DEBUG= as :

  • DEBUG='slumber:api' ... to see debug for node-slumber API calls only
  • DEBUG='slumber:*' ... to see debug for node-slumber, more verbose
  • DEBUG='*' node ... to see debug for all modules using debug, extremely verbose

Development

Gitter chat

Requirements

  • Node.js >= v0.10

See also

  • Browse examples in CoffeeScript and Javascript

License

MIT

Current Tags

  • 0.11.0                                ...           latest (9 years ago)

25 Versions

  • 0.11.0                                ...           9 years ago
  • 0.10.1                                ...           10 years ago
  • 0.10.0                                ...           10 years ago
  • 0.9.0                                ...           10 years ago
  • 0.8.0                                ...           10 years ago
  • 0.7.1                                ...           10 years ago
  • 0.7.0                                ...           11 years ago
  • 0.6.0                                ...           11 years ago
  • 0.5.0                                ...           11 years ago
  • 0.4.1                                ...           12 years ago
  • 0.3.4                                ...           12 years ago
  • 0.3.3                                ...           12 years ago
  • 0.3.2                                ...           12 years ago
  • 0.3.1                                ...           12 years ago
  • 0.2.2                                ...           12 years ago
  • 0.2.1                                ...           12 years ago
  • 0.1.9                                ...           12 years ago
  • 0.1.8                                ...           12 years ago
  • 0.1.7                                ...           12 years ago
  • 0.1.6                                ...           12 years ago
  • 0.1.5                                ...           12 years ago
  • 0.1.4                                ...           12 years ago
  • 0.1.3                                ...           12 years ago
  • 0.1.2                                ...           12 years ago
  • 0.1.0                                ...           12 years ago
Maintainers (1)
Downloads
Today 0
This Week 1
This Month 3
Last Day 1
Last Week 2
Last Month 4
Dependencies (5)
Dev Dependencies (7)
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |