使用virtualenv坏境
没有的话安装下
pip install virtualenv
启用virtualenv环境,安装pecan
$ virtualenv pecanrest-proj$ cd pecanrest-proj$ source bin/activate$ pip install pecan$ pecan create pecanrest$ cd pecanrest$ python setup.py develop
也可以手工创建pecanrest项目,及其文件结构,但是方便演示,还是通过pecan create自动创建
启动pecan
$ pecan serve config.py
应该会看到以下信息
Starting server in PID 14821serving on 0.0.0.0:8080, view at http://127.0.0.1:8080
访问127.0.0.1:8080会看到如下
终止的话 CTRL+C
json格式输出
$ cd pecanrest/controllers/$ vim root.py添加如下内容:from pecanrest.controllers import v1 class RootController(object): v1 = v1.VersionController()另外创建v1.pyimport pecanfrom pecan import rest class VersionController(rest.RestController): @pecan.expose('json') def get(self): return {"version": "1.0.0"}现在启动pecan$ cd ../..$ pecan serve config.py访问http://localhost:8080/v1将会看到返回{"version": "1.0.0"}
真正的REST API, GET/POST/PUT/DELETE.
$ cd pecanrest/controllers/$ mkdir api$ cd api创建以下文件rw-r--r-- 1 root root 113 Aug 1 16:26 api.pyrw-r--r-- 1 root root 0 Aug 1 16:25 __init__.pyrw-r--r-- 1 root root 703 Aug 1 16:26 order.py
api.py
from pecanrest.controllers.api import orderclass ApiController(object): orders = order.OrdersController()
order.py
import pecanfrom pecan import rest, responseclass OrdersController(rest.RestController): @pecan.expose("json") def get(self): return { "100A": "1 bag of corn", "293F": "2 bags of potatoes", "207B": "1 bag of carrots" } @pecan.expose() def post(self): # TODO: Create a new order, (optional) return some status data response.status = 201 return @pecan.expose() def put(self): # TODO: Idempotent PUT (return 200 or 204) response.status = 204 return @pecan.expose() def delete(self): # TODO: Idempotent DELETE response.status = 200 return
修改root.py
from pecanrest.controllers.api import apiclass RootController(object): api = api.ApiController()
启动pecan, 访问
将会看到调用了get方法