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
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a97ef0123206e97ff8a07b080a1dfb980bbff7bb4dd6b02f292ac367b40702e4 |
|
MD5 | 356e0b02892e68c33b546516738f9255 |
|
BLAKE2b-256 | 1e7f5cfaabc035417ceed7b720f6bef2cee8bfbc3a79181d1597458943a0670e |