gpt4 book ai didi

javascript - 使用 Restful API 进行 Birt

转载 作者:行者123 更新时间:2023-12-03 02:07:51 24 4
gpt4 key购买 nike

我正在为 PHP 项目开发 BIRT 报告。我可以通过使用 JDBC 数据源直接连接到数据库来轻松开发报告。然而,某些数据来自 Restful api,我无法从这些 api 端点创建数据源。

Birt 可以选择从 Web 服务创建数据源,但这似乎只接受 SOAP API。我想知道是否有人可以向我展示如何从 REST API 创建 birt 数据源。我通读了谷歌提供的所有搜索结果。有些人建议使用 POJO 数据源,而有些人建议使用脚本化数据源,这需要 Java 知识,并且对于 PHP 程序员来说破解起来并不困难。大多数链接重定向到 devshare,现在它指向打开的文本,并且内容不再存在。我尝试了以下所有建议。

使用 Webservices 数据源:它需要 wsdl 文件的位置,而 REST API 则不存在该位置。它仅附带 SOAP API。如果有替代方案那就太好了。

尝试过 POJO 数据源和脚本数据源:但作为 PHP 开发人员,无法获得良好的结果,因为没有分步指南来执行此操作。

因为 REST 如今非常流行,我想知道是否有任何直接的方法可以做到这一点,或者是否有人可以帮助编写用于 PHP 头的脚本数据源的 Java 或 Javascript 程序。过去 15 天我一直在尝试这个方法,并且迫切需要一些帮助。

最佳答案

最终得到脚本化数据源。

使用 open() 方法创建脚本数据源,如下所示:

logger = java.util.logging.Logger.getLogger("birt.report.logger");

importPackage(Packages.java.io);
importPackage(Packages.java.net);

//if you have a parameter
var param= params["industryname"].value;

var inStream = new
URL("http://yourapi/endpoint/" + param).openStream();
var inStreamReader = new InputStreamReader(inStream);
var bufferedReader = new BufferedReader(inStreamReader);
var line;
var result = "";

while ((line = bufferedReader.readLine()) != null)
result += line;
inStream.close();

var json = JSON.parse(result);
vars["HTMLJSON"] = json;

logger.warning (result);
//logger.warning (json);

然后使用以下方法创建数据集:

打开()

recNum=0;

获取()

len = vars["HTMLJSON"].length;

if (recNum >= len)
return false;

row["name"] = vars["HTMLJSON"][recNum].name;
row["id"] = vars["HTMLJSON"][recNum].id;
row["active"] = vars["HTMLJSON"][recNum].active;

recNum++;

return true;

您可能需要在 scriptlib 文件夹中包含 Apache Commons IO。

关于javascript - 使用 Restful API 进行 Birt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49725274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com