你基本上有三个选择:
- 使用 REST API
- 开发redmine插件
- 做一些自定义 SQL 的东西
REST API
你能做的最好的就是使用redmine REST API。使用它,您可以直接从 redmine 获取数据,无需任何 SQL 查询或操作服务器。当 redmine 服务器更新时,它甚至应该可以工作。
Redmine 插件
下一个最好的事情可能是开发一个redmine 插件。您的插件可以访问 redmine 类(Project
、User
等)。例如,您可以执行类似Projects.all.map {|p| [p.id, p.identifier]}
获取数组中所有项目的 id 和标识符的操作。这种方法比使用 REST API 更强大,但是您必须修改 redmine 服务器(安装和维护您的插件)。当 redmine 更改内部结构时,插件可能比 REST API 更脆弱。
自定义 SQL 的东西
我不建议开发自定义 SQL 解决方案,但这是一种选择。这样的解决方案更难开发、更脆弱、更难设置,但可能会提供更好的性能。您可以看到 中列出的 redmine 数据库结构db/schema.rb
。拥有正确的架构,您可以开发自定义 SQL 查询并将它们返回到您的仪表板。
考虑安全
除了通常的安全问题(你也应该考虑 :)),记住 redmine 有一个丰富的权限系统。考虑您(公开)提供的对象。这对于最后两个选项最为重要。使用插件方式的时候,应该看一下User#allowed_to
方法。
根据我对您的要求的少量信息,我觉得您应该选择 REST API。