1

我正在创建一个可以访问 Redmine 项目数据的仪表板。此仪表板将整合 Redmine 数据库中所有项目的项目数据(交付日期、经理、开始日期、总问题、未解决问题、已关闭问题、错误计数等)。

关于如何做到这一点的任何想法?实现此目的的 SQL 查询将是一个好的开始。我在本地系统上安装了 Redmine,可以访问 Redmine 数据库。

我计划创建一个基于 HTML5 .Net 的 Web 应用程序。一旦确定要使用的查询,我将编写一个 IIS(或 REST)服务来从 Redmine 生产数据库中获取所需的数据。

任何帮助/指针将不胜感激。

问候, 普兰贾尔

4

1 回答 1

3

你基本上有三个选择:

  1. 使用 REST API
  2. 开发redmine插件
  3. 做一些自定义 SQL 的东西

REST API

你能做的最好的就是使用redmine REST API。使用它,您可以直接从 redmine 获取数据,无需任何 SQL 查询或操作服务器。当 redmine 服务器更新时,它甚至应该可以工作。

Redmine 插件

下一个最好的事情可能是开发一个redmine 插件。您的插件可以访问 redmine 类(ProjectUser等)。例如,您可以执行类似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

于 2013-07-03T13:20:58.007 回答