googleappengine中restfulapi的动态URL实现

googleappengine中restfulapi的动态URL实现,api,google-app-engine,rest,Api,Google App Engine,Rest,客户端应用程序将使用GET方法向发送消息,以便接收包含用户使用历史记录的JSON回复。可能是一张听过的歌曲、购买的物品等的清单 我可以通过以下代码片段了解到如何处理: application = webapp.WSGIApplication( [('/', BrowserTests), ('/user/([^/]+)?', UserHandler), ], debug=True) 我通过以下方式在UserHandler中使用: user_id

客户端应用程序将使用GET方法向发送消息,以便接收包含用户使用历史记录的JSON回复。可能是一张听过的歌曲、购买的物品等的清单

我可以通过以下代码片段了解到如何处理:

application = webapp.WSGIApplication(
        [('/', BrowserTests),
         ('/user/([^/]+)?', UserHandler),
        ], debug=True)
我通过以下方式在UserHandler中使用:

user_id = str(urllib.unquote(resource))
这样我就可以为你做这项工作了。但我怎样才能更进一步,消费历史呢


我试着在StackOverflow和文档中查找,但我想我不知道到底要问什么才能得到答案。

你可以这样做:

application = webapp.WSGIApplication([
    ('/user/([^/]+)/([^/]+)', UserHandler),
    ], debug=True)


class UserHandler(webapp.RequestHandler):
  def get(self, user_id, action_to_consume):
    self.response.out.write("Action %s" % action_to_consume)#Should print History
添加第二个参数

application = webapp.WSGIApplication(
        [('/', BrowserTests),
         ('/user/([^/]+)/([^/]+)$', UserHandler),
        ], debug=True)

class UserHandler(webapp.RequestHandler):
    def get(self, userid, history):

如果您希望每个操作都有一个单独的处理程序,可以选择@Jose和@systempuntoout的答案:

application = webapp.WSGIApplication([
    ('/', BrowserTests),
    ('/user/([^/]+)', UserHandler),
    ('/user/([^/]+)/history', HistoryHandler),
], debug=True)

class UserHandler(webapp.RequestHandler):
  def get(self, userid):
    pass

class HistoryHandler(webapp.RequestHandler):
  def get(self, userid):
    pass

DomDerrien对实现MVC模型以在GAE中创建RESTfulAPI有很好的描述。请查看他的博客以了解详细信息:永远不要在WSGI应用程序中调用^100打印。@尼克挑剔者,花点+1代替:P.不是挑剔-原始示例不会起作用。现在我可以投票给你了