【发布时间】:2014-02-27 10:51:39
【问题描述】:
我正在尝试让 CherryPy 处理通过cherrypy.dispatch.MethodDispatcher() 对/api 的请求以及对某个默认调度程序的所有其他请求(如/)。
阅读 CherryPy 的文档后,我不知道该怎么做。他们只分别使用这两种路由方法,但这是一个非常基本的东西,我相信它必须一起工作。
#!/usr/local/bin/python2.7
import cherrypy
class Root(object):
@cherrypy.expose
def index(self):
return 'Hello world'
class RestAPI(object):
@cherrypy.expose
def POST(self, blah):
return 'ok'
cherrypy.config.update({
'global': {
'environment': 'production',
'server.socket_host': '127.0.0.1',
'server.socket_port': 8080,
}
})
root = Root()
root.api = RestAPI()
conf = {
'/api': {
'request.dispatch': cherrypy.dispatch.MethodDispatcher()
}
}
cherrypy.quickstart(root, '', config=conf)
通过调用curl 'http://localhost:8080/',它给了我Hello world,这是正确的。
但是调用 curl -X POST 'http://localhost:8080/api' 只返回 404。
顺便说一句,这完全是同一个问题,没有任何答案CherryPy MethodDispatcher with multiple url paths。
【问题讨论】: