我正在创建一个可以访问Redmine项目数据的面板。该仪表板将整合Redmine数据库中所有项目的项目数据(交付日期、经理、开始日期、总问题、未解决问题、已解决问题、错误计数等)。
有什么想法吗?实现这一点的SQL查询将是一个良好的开端。我在本地系统上安装了Redmine,可以访问Redmine数据库。
我计划创建一个基于HTML5.Net的web应用程序。一旦我确定了要使用的查询,我就会编写一个IIS(或REST)服务,从Redmine生产数据库中获取所需的数据。
如有任何帮助/建议,我们将不胜感激。
谨致问候,Pranjal
您基本上有三个选项:
- 使用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和标识符。这种方法比使用RESTneneneba API更强大,但您必须修改redmine服务器(安装并维护插件)。当redmine改变内部结构时,插件可能比REST API更脆弱。
自定义SQL内容
我不建议开发自定义SQL解决方案,但这是一种选择。这样的解决方案更难开发、更脆弱、更难建立,但可能会提供更好的性能。您可以看到db/schema.rb
中列出的redmine数据库结构。有了正确的模式,您可以开发自定义SQL查询并将其返回到仪表板。
考虑安全性
除了常见的安全问题(你也应该考虑:)之外,记住redmine有一个丰富的权限系统。考虑一下你让哪个对象(公开)可用。这对于最后两个选项来说是最重要的。在使用插件方法时,您应该了解User#allowed_to
方法。
根据我所掌握的关于您的需求的少量信息,我觉得您应该选择REST API。