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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9227156448390c33874ea85e129cb5bf08a6c866ecbf1902cd8bc96355e1ba9a |
|
MD5 | b8e3cd3e005b7608afa4ac8675140e34 |
|
BLAKE2b-256 | 9a648b44bb5816ce08c2219235469b28ba5310a8535e677850c63e378eeeaff6 |
File details
Details for the file Bedframe-0.13.5-py27-none-any.whl
.
File metadata
- Download URL: Bedframe-0.13.5-py27-none-any.whl
- Upload date:
- Size: 130.7 kB
- Tags: Python 2.7
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05be2f380a40095732f69f41749e6abedd4290089e88522a45010925f0504796 |
|
MD5 | b2bc62e8722a6d4419b96b7b1aa577dd |
|
BLAKE2b-256 | f4ebe6f7cf20ce32de4030c857d3b3f057f4b80a1589e1821f703aa566e06f8b |
File details
Details for the file Bedframe-0.13.5-py2.7.egg
.
File metadata
- Download URL: Bedframe-0.13.5-py2.7.egg
- Upload date:
- Size: 121.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 588daeb9b97dd36d83f8c5e75c471624eb7c9908146fa5e2f2bde98e2d0cf8ea |
|
MD5 | 304e62bc54b97825e0dc1887c8dd2b47 |
|
BLAKE2b-256 | d506b24e5c78a4faaa27f187ec09a485526698cdb195f42d3f545f86983a3337 |