在 Falcon 框架中将所有路径路由到一个处理函数

Routing all paths to one handler function at Falcon Framework

我想将所有以“/api”开头的路径路由到相同的处理函数。

如:

/api/foo
/api/bar
/api/foo/bar
/api/bar/baz/this/that 

所有的都应该用一个函数来处理,我应该能够在 /api.

之后得到完整的路径

这个功能非常方便,我在 Node.js Express 框架中经常使用它。现在我正在寻找使用 Python Falcon 框架完成同样事情的方法。

可以在此处找到更多信息;它将特征定义为 "white-listed “global” functionality."

http://expressjs.com/api.html#app.all

如果您正在寻找一种方法来处理所有请求,然后再将它们路由到适当的资源,我建议您查看 middleware components

也许您正在寻找 Falcon 的水槽设施,例如:

class Sink(object):
    def on_get(self, req, resp):
        resp.body = ('\nTwo things awe me most, the starry sky '
                     'above me and the moral law within me.\n'
                     '\n'
                     '    ~ Immanuel Kant\n\n')

app = falcon.API()
handler = Sink().on_get
app.add_sink(handler, prefix='/')

这会将所有 URL 路由到接收器处理程序。