1 回答

TA贡献1802条经验 获得超4个赞
下面的代码将返回一个包含 URL 及其各自资源的元组列表:
def get_all_routes(api):
routes_list = []
def get_children(node):
if len(node.children):
for child_node in node.children:
get_children(child_node)
else:
routes_list.append((node.uri_template, node.resource))
[get_children(node) for node in api._router._roots]
return routes_list
输出
[
('/v1/things', <v1.v1_app.ThingsResource object at 0x7f555186de10>),
('/v2/things', <v2.v2_app.ThingsResource object at 0x7f5551871470>),
('/v3/things/{name}', <v3.v3_app.ThingsResource object at 0x7f5551871ba8>)
]
我已经阅读了这个包并得出了这个,但是,我不知道任何会返回这个结果的内置方法。
如果你不喜欢上面的功能,你可以通过扩展 API 类来实现类似的功能。
我制作了一个用于对 Falcon 应用程序进行版本控制的 Github 存储库,您可以从中了解如何分离 URL 及其相关资源。Github 链接
您可以拥有路由列表并通过扩展API 类添加它们
URL 和资源将类似于:
from v1.v1_app import things
urls = [
('/things', things),
]
添加回答
举报