我刚开始使用 Pentaho 数据集成,并且能够从 UI 创建转换/作业并从 UI 以及 Pentaho DI java SDK 运行它们。此外,我成功设置了 carte 服务器,提交了转换,并在 carte webUI 上监控了它的状态。
我的问题是:
carte 服务器是否还公开了任何 JSON/XML REST API,我可以通过这些 API 提交作业/转换并监控它们的进度?现在它似乎只为通过浏览器使用而开发。
谢谢 - 尼丁,
我刚开始使用 Pentaho 数据集成,并且能够从 UI 创建转换/作业并从 UI 以及 Pentaho DI java SDK 运行它们。此外,我成功设置了 carte 服务器,提交了转换,并在 carte webUI 上监控了它的状态。
我的问题是:
carte 服务器是否还公开了任何 JSON/XML REST API,我可以通过这些 API 提交作业/转换并监控它们的进度?现在它似乎只为通过浏览器使用而开发。
谢谢 - 尼丁,
是的,存在 REST API。
Carte 基于 Jetty 服务器,旨在用于 Web 浏览器,但没有理由阻止发送/接收请求,例如http://your-server:9090/kettle/status?xml=true
.
但是,我看到两个主要障碍:首先,您将收到必须从中提取相关信息的 html。做起来并不难,但必须由你来做。
其次,是文档。社区文档相当短,EE 版文档没有解决这个问题。有一个地下文档,但可能已经过时(或者它可能存在于我不知道的更新版本)。
所以你一定会在论坛和来源中爬行[来源] [5]。在org.pentaho.di.www
包中你会发现很多*Servlet.java
,每一个都对应一个动作,其 url 定义在变量中类的开头CONTEXT_PATH
。
例如,类 org.pentaho.di.www.RunTransServlet.java 在第 58 行包含:public static final String CONTEXT_PATH = "/kettle/runTrans";
指示运行转换的 url 是http://your-server:9090/kettle/runTrans?...
. 然后你现在有 2 个参数,转换名称和日志级别,或者通过查看第 68-145 行的 html 文档,或者通过阅读doGet
方法的代码。
它比听起来容易得多(感谢 Matt Casters 和 Jens Bleuel 在软件工程方面的天赋)。
我自己做了一个信息较少的小型 ajax 界面。那是在他们发明这个 CORS 东西之前,所以你必须检查它是否Access-Control-Allow-Origin: *
被写入响应头。
因此,如果您足够勇敢并计划朝这个方向做点什么,请让我了解最新情况,并毫不犹豫地寻求帮助。