CherryPy中的嵌套RESTful路由

时间:2014-01-28 23:15:38

标签: rest cherrypy restful-url

我理解并使用本指南http://docs.cherrypy.org/dev/progguide/REST.html

在我的应用程序中使用RESTful路由

有没有人知道如何添加嵌套在第一个中的第二个RESTful资源?

我希望我的代码看起来像这样,但我无法让它工作

import cherrypy

class Pets:
  exposed = True

  def GET(self, personID, petID):
    pass # GET /people/123/pets/333 return pet

  def POST(self, personID):
    pass # POST /people/123/pets create pet

class People:
  pets = Pets()

  exposed = True

  def GET(self, personID):
    pass # GET /people/123 return person

  def POST(self):
    pass # POST /people create person


config = {
  '/people': {
    'request.dispatch': cherrypy.dispatch.MethodDispatcher()
  }
}

cherrypy.tree.mount(.., '/', config)

1 个答案:

答案 0 :(得分:2)

请参阅 cherrypy.popargs 的帮助文档。它弹出路径组件,并将它们作为关键字参数提供给下一个处理程序。在这种情况下,将其用作人力资源上的装饰器,并将宠物资源附加到人力资源。

@cherrypy.popargs('petID')
class Pets:
    ...
@cherrypy.popargs('personID')
class People:
    ...