Skip to main content

useful decorator for building WebAPI on Bottle web framework development

Project description

Installation

$ pip install bottle-api

Basic Usage

json_endpoint decorator will make a function to JSON WebAPI endpoint. decorated function will return bottle.HTTPResponse.

see this sample web app:

#!python
from bottleapi import WebApiError
from bottleapi.jsonapi import json_endpoint
from bottle import Bottle, request

app = Bottle()

@json_endpoint
def devide():
    a = int(request.params['a'])
    b = int(request.params['b'])
    if b == 0:
        raise WebApiError('b cannot be zero', status=400)

    result = a / b
    return dict(value=result)

app.route('/devide', ['GET'], devide)

if you access /device?a=1&b=1, it will return 200 OK response with body:

{"status": "ok", "result": {"value": 1}}

with Content-Type application/json

but when you access device?a=1&b=0, you will get 400 BAD REQUEST response with body:

{"status": "error", "message": "b cannot be zero", "result": null}

If you want to use JSONP, you can specify callback function name with parameter(j by default) So accessing /device?a=4&b=2&j=my_callback will result:

my_callback({"status": "ok", "result": {"value": 2}});

If you dont like parameter or result data format, You can define your own formatters(success/error). See jsonapi.py for customized formatter example.

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

bottle-api-0.0.4.tar.gz (3.5 kB view hashes)

Uploaded Source

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