perl - 如何枚举 Catalyst 应用程序中的所有端点?
问题描述
我有一个大型 Catalyst 应用程序,想要获取它支持的所有端点的列表(如果它可以告诉我请求方法是否可以加分)。有没有一些简单的方法可以让 Catalyst 列出它们?
解决方案
Catalyst 不知道完整的路径集。真正的调度路径是动态解析的,遍历 DispatchType 类,直到对match
.
调试选项一次性枚举控制器允许的所有可能性。如果你想干涉这个,你必须看看Catalyst::Dispatcher::_display_action_tables
这是一种树遍历算法,它遍历它在“/”处找到的每条路线,并遵循每个$controller->actions
返回的后续路线。它不容易阅读,但是您可以想象实现一个 _display_action_tables 版本,它不仅可以打印到表格,还可以执行其他操作。然后使用 $c 作为参数在实时应用程序中调用它,看看会发生什么!
推荐阅读
- javascript - Google表格中MIN()的自定义数组函数
- python - 用于 Django 安装的 PIP 命令
- amazon-web-services - 使用 REST API 的 AWS S3 PUT 示例
- node.js - Mongoose 2dsphere 未创建,手动索引部分工作
- vba - 替换 MS-Word 中的文本框
- javascript - 事件监听器的范围
- javascript - 启动 chrome 崩溃 url 时出现“不允许加载本地资源”错误
- mysql - MySql - 如何使用 WHERE 子句从两个表中选择 MAX ID
- highcharts - Highcharts 热图不呈现正方形或矩形
- javascript - Vue 构建错误 @babel/compat-data 未找到