Skip to main content

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

image

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}

image

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}

image

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}

image

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

image

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


Download files

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

Source Distribution

sbeaver-0.7.2.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

sbeaver-0.7.2-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

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

Hashes for sbeaver-0.7.2.tar.gz
Algorithm Hash digest
SHA256 fb8a4f0051063fca889a45fc9d67a5949b26c86709ee0bc512833d380402d416
MD5 edb95acbdea6d7e86ad6f8fe69f72e0d
BLAKE2b-256 fe7ef943e9793d0d3ba1b8d291621d40a78a9db75dbbcd985d38085ba60d367e

See more details on using hashes here.

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

Hashes for sbeaver-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ffb16772f8f5353e6c0d98a4cc68a9b268d1d9db4c5c5983b40e62a9804865aa
MD5 c0e660cee991f1f693eaff868a108001
BLAKE2b-256 19f10f125f2c3585b6ec5f2b46c2cfbfd35ca63464a776fd1c1cc25ed49196bc

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