Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

A resource-oriented web services framework

Project description

Bedframe is a resource-oriented web services framework.


A Bedframe service runs on an underlying web server. Support for each particular web server is provided via a corresponding plugin. Bedframe releases include some web server plugins, which are activated by installing their corresponding package extras. These are the currently supported extras:

Support for the Tornado web server (via tornado.web.Application).
Support for the Tornado WSGI web server (via tornado.wsgi.WSGIApplication).

For example, to install Bedframe with support for the Tornado WSGI web server, you can run

pip install bedframe[tornado_wsgi]

In addition, Bedframe supports these other extras:

Support for the Lightweight Directory Access Protocol (LDAP) for authentication (via python-ldap).
Support for memcached for authentication (via python-memcached).
Support for the Lightweight Directory Access Protocol (LDAP) for automated testing (via Spruce-ldap and OpenLDAP).


“Hello, world” service

import bedframe as _bedframe
import bedframe.webtypes as _webtypes

class HelloWorldResource(_bedframe.WebResource):
    def get(self):
        return u'Hello, world!'

service = _bedframe.WebService(uris=('http://localhost:8080',))
service.resources[r'/helloworld'] = HelloWorldResource

Example usage (Napper):

>>> import bedframe.webtypes as _webtypes
>>> import napper as _napper
>>> uri = 'http://localhost:8080/helloworld'
>>> response = _napper.request_uri('get', uri)
>>> hello = _napper.extract_retval(response, _webtypes.unicode)
>>> print hello
Hello, world!

Example usage (Requests):

>>> import requests as _requests
>>> uri = 'http://localhost:8080/helloworld'
>>> headers = {'Accept': ', '.join(('application/json', '*/*; q=0.01'))}
>>> response = _requests.get(uri, headers=headers)
>>> hello = response.json()['retval']
>>> print hello
Hello, world!

Example usage (HTTPie):

$ uri='http://localhost:8080/helloworld'
$ http get "$uri" Accept:'application/json,*/*; q=0.01' --body
    "auth_info": {
        "accepted": null,
        "realm": null,
        "user": null
    "retval": "Hello, world!",
    "type": "bedframe._responses._return:WebReturnResponse"


0.13.0 (2013-10-11)

  • First public version.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
Bedframe-0.13.5-py2.7.egg (121.6 kB) Copy SHA256 hash SHA256 Egg 2.7
Bedframe-0.13.5-py27-none-any.whl (130.7 kB) Copy SHA256 hash SHA256 Wheel 2.7
Bedframe-0.13.5.tar.gz (102.3 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page