pecan入門

使用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/DELETEip

$ 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方法

相關文章
相關標籤/搜索