使用virtualenv坏境python
没有的话安装下json
pip install virtualenv
启用virtualenv环境,安装pecanvim
$ virtualenv pecanrest-proj $ cd pecanrest-proj $ source bin/activate $ pip install pecan $ pecan create pecanrest $ cd pecanrest $ python setup.py develop
也能够手工建立pecanrest项目,及其文件结构,可是方便演示,仍是经过pecan create自动建立api
启动pecanbash
$ pecan serve config.py
应该会看到如下信息post
Starting server in PID 14821 serving on 0.0.0.0:8080, view at http://127.0.0.1:8080
访问127.0.0.1:8080会看到以下rest
终止的话 CTRL+Ccode
json格式输出server
$ cd pecanrest/controllers/ $ vim root.py 添加以下内容: from pecanrest.controllers import v1 class RootController(object): v1 = v1.VersionController() 另外建立v1.py import pecan from 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. ip
$ cd pecanrest/controllers/ $ mkdir api $ cd api 建立如下文件 rw-r--r-- 1 root root 113 Aug 1 16:26 api.py rw-r--r-- 1 root root 0 Aug 1 16:25 __init__.py rw-r--r-- 1 root root 703 Aug 1 16:26 order.py
api.py
from pecanrest.controllers.api import order class ApiController(object): orders = order.OrdersController()
order.py
import pecan from pecan import rest, response class 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 api class RootController(object): api = api.ApiController()
启动pecan, 访问 http://127.0.0.1:8080/api/orders
将会看到调用了get方法