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

相关文章
相关标签/搜索