使用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方法