Skip to main content

A resource-oriented web services framework

Project description

Bedframe is a resource-oriented web services framework.

Installation

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:

tornado

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

tornado_wsgi

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:

ldap

Support for the Lightweight Directory Access Protocol (LDAP) for authentication (via python-ldap).

memcached

Support for memcached for authentication (via python-memcached).

test_ldap

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

Examples

“Hello, world” service

import bedframe as _bedframe
import bedframe.webtypes as _webtypes

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

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

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"
}

Changelog

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.

Source Distribution

Bedframe-0.13.5.tar.gz (102.3 kB view details)

Uploaded Source

Built Distributions

Bedframe-0.13.5-py27-none-any.whl (130.7 kB view details)

Uploaded Python 2.7

Bedframe-0.13.5-py2.7.egg (121.6 kB view details)

Uploaded Source

File details

Details for the file Bedframe-0.13.5.tar.gz.

File metadata

  • Download URL: Bedframe-0.13.5.tar.gz
  • Upload date:
  • Size: 102.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Bedframe-0.13.5.tar.gz
Algorithm Hash digest
SHA256 9227156448390c33874ea85e129cb5bf08a6c866ecbf1902cd8bc96355e1ba9a
MD5 b8e3cd3e005b7608afa4ac8675140e34
BLAKE2b-256 9a648b44bb5816ce08c2219235469b28ba5310a8535e677850c63e378eeeaff6

See more details on using hashes here.

File details

Details for the file Bedframe-0.13.5-py27-none-any.whl.

File metadata

File hashes

Hashes for Bedframe-0.13.5-py27-none-any.whl
Algorithm Hash digest
SHA256 05be2f380a40095732f69f41749e6abedd4290089e88522a45010925f0504796
MD5 b2bc62e8722a6d4419b96b7b1aa577dd
BLAKE2b-256 f4ebe6f7cf20ce32de4030c857d3b3f057f4b80a1589e1821f703aa566e06f8b

See more details on using hashes here.

File details

Details for the file Bedframe-0.13.5-py2.7.egg.

File metadata

File hashes

Hashes for Bedframe-0.13.5-py2.7.egg
Algorithm Hash digest
SHA256 588daeb9b97dd36d83f8c5e75c471624eb7c9908146fa5e2f2bde98e2d0cf8ea
MD5 304e62bc54b97825e0dc1887c8dd2b47
BLAKE2b-256 d506b24e5c78a4faaa27f187ec09a485526698cdb195f42d3f545f86983a3337

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page