在瓶式web框架开发中构建webapi的有用装饰器
bottle-api的Python项目详细描述
安装
$ pip install bottle-api
基本用法
json_endpoint decorator将生成一个函数到json webapi endpoint。 修饰函数将返回balt.httpresponse。
查看此示例Web应用:
#!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)
如果您访问/device?a=1&b=1,它将返回200 OK响应,正文:
{"status": "ok", "result": {"value": 1}}
内容类型为application/json
但是当您访问device?a=1&b=0时,您将获得400 BAD REQUEST响应,其正文为:
{"status": "error", "message": "b cannot be zero", "result": null}
如果要使用jsonp,可以用参数指定回调函数名(默认情况下,j) 因此,访问/device?a=4&b=2&j=my_callback将导致:
my_callback({"status": "ok", "result": {"value": 2}});
如果不喜欢参数或结果数据格式,可以定义自己的格式化程序(成功/错误)。 有关自定义格式化程序示例,请参见jsonapi.py。