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 details)

Uploaded Source

File details

Details for the file bottle-api-0.0.4.tar.gz.

File metadata

  • Download URL: bottle-api-0.0.4.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for bottle-api-0.0.4.tar.gz
Algorithm Hash digest
SHA256 a97ef0123206e97ff8a07b080a1dfb980bbff7bb4dd6b02f292ac367b40702e4
MD5 356e0b02892e68c33b546516738f9255
BLAKE2b-256 1e7f5cfaabc035417ceed7b720f6bef2cee8bfbc3a79181d1597458943a0670e

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