Simple HTTP Server for REST API
Project description
Sbeaver
This is sbeaver - a lightweight and extremely simple http server for creating APIs.
To install sbeaver on your system, you can use the pip install sbeaver
command, or you can download this repository and run python setup.py install
Usage
import sbeaver
server = sbeaver.Server(address="localhost", port=8000, sync=True)
this code will import and make the basic configuration of the sbeaver server in your project
To start, you need to call server.start()
Decorators are used to bind paths on the server to internal methods.
sbind is used to bind static paths (e.g. home page)
@server.sbind('/')
def index(request):
return 200, {'status':'ok'}
You can also bind a regular expression using bind
@server.bind(r'/regex/(\w*)(?:\.|/)(\w*)(?:|/)')
def regex(request, param1 = None, param2 = None):
return 200, {'first':param1, 'second':param2}
Or if you can't work with the regex, you can use easy bind(ebind
)
@server.ebind('/ebind/<submethod>/<method>')
def method(request, submethod = None, method = None):
return 200, {'section':submethod, 'method':method}
You can also interact with the user's request. For example, this code will return all known information about a particular request
@server.sbind('/info')
def info(request):
request.parse_all() # get and save data, url params, ip from request
return 200, {'info':request.dict}
If the function required for the path is not found during request processing, the code404 function is called. It can be assigned by code
@server.code404()
def page_not_found(request):
return {'error404': f"path {request.path} not found"}
Also done with 500 code. When an exception occurs during the processing of a user request, an error will be displayed and the code function will be called
@server.code500()
def internal_server_error(request):
return {'error500': f"Exception happened"}
Redirecting
You can redirect user to another page using method redirect
Example:
@server.sbind('/') # static bind
def args(request):
return sbeaver.redirect(307,'/info') # redirect with data(307 code)
Files
You can return files using method file
@server.sbind('/photo')
def photo(request):
return sbeaver.open_file('beaver.png', sbeaver.Types.Image.png)
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 Distribution
File details
Details for the file sbeaver-0.7.2.tar.gz
.
File metadata
- Download URL: sbeaver-0.7.2.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb8a4f0051063fca889a45fc9d67a5949b26c86709ee0bc512833d380402d416 |
|
MD5 | edb95acbdea6d7e86ad6f8fe69f72e0d |
|
BLAKE2b-256 | fe7ef943e9793d0d3ba1b8d291621d40a78a9db75dbbcd985d38085ba60d367e |
File details
Details for the file sbeaver-0.7.2-py3-none-any.whl
.
File metadata
- Download URL: sbeaver-0.7.2-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ffb16772f8f5353e6c0d98a4cc68a9b268d1d9db4c5c5983b40e62a9804865aa |
|
MD5 | c0e660cee991f1f693eaff868a108001 |
|
BLAKE2b-256 | 19f10f125f2c3585b6ec5f2b46c2cfbfd35ca63464a776fd1c1cc25ed49196bc |