云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

数据库服务器_永久免费网站空间_优惠

小七 141 0

简介

今年早些时候,云快卖,我发表了一篇博客文章,其中描述了如何使用groovyshell的通用包装器脚本步骤来执行sapcpi的iFlow中动态提交的Groovy脚本代码片段。演示该技术背后的动机是基于这样一种想法,即这种方法可以方便地由CPI的运行时节点一次性执行所需的Groovy脚本,并通过一个最小的工具集进行了说明:

IDE–开发Groovy脚本,大数据用什么数据库,HTTP客户机—将Groovy脚本发送到iFlow的端点,部署的iFlow带有一个Groovy脚本步骤,淘客插件,它实现了一个通用包装器,并期望动态提交的脚本代码被传递给它。

在早期的演示准备过程中,我使用IntelliJ IDEA作为IDE,使用Postman作为HTTP客户机:Groovy脚本是在IntelliJ IDEA中开发的,在IntelliJ IDEA中对应的所需依赖项(例如由于添加了一些Camel和CPI依赖项,并且在脚本准备就绪后,它被复制到Postman中的请求体中,请求被发送到iFlow的端点,该端点只包含一个步骤——一个实现所描述的包装逻辑的Groovy脚本步骤,最后,一个动态提交的脚本被运行时节点执行。

这种方法在某些用例中很有用,但它有一个缺点:开发人员需要使用两种不同的工具—IDE和HTTP客户端—并在它们之间切换。因此,Groovy脚本必须手动从IDE复制到HTTP客户机。这并不需要很大的努力,但是当对一个代码片段执行一些小的调整,并且需要快速地多次重新执行一个请求的调整版本时,这一系列的步骤最终会导致复制粘贴错误。

将两个工具结合起来,让开发人员避免在IDE和HTTP之间切换,这不是很好吗客户来回?在这种情况下,我们应该将代码编辑功能引入HTTP客户机,还是在IDE中找到执行HTTP请求的方法?第一个选项(用高级代码编辑功能丰富HTTP客户机)似乎不是最佳的,但后一个选项是最佳的。在这篇博文中,我将重点介绍开发人员的工作效率,并说明如何通过从IDE中调用HTTP客户机并使用它向CPI发送HTTP请求来改善开发人员的体验。考虑到我们将要发送的HTTP请求相对简单,我们不需要高级HTTP功能,并将看到两种示例方法在起作用:

使用HTTP客户端实用程序,该实用程序带有从IDE中在终端中调用的命令行接口(CLI),使用定制开发的简单HTTP请求生成器,该生成器作为Groovy脚本实现。

环境和工具

在演示上述方法之前,让我们先来设置场景。

在本博客中,大数据局,所有Groovy开发都将使用IntelliJ IDEA执行。intellijidea为Groovy开发提供了一个方便且功能丰富的环境和工具:代码完成、语法检查、代码重构功能、与版本控制系统的集成、依赖关系管理系统、静态代码分析工具等等。这些特性和其他许多特性将帮助CPI开发人员使Groovy开发更加舒适和高效—尽管很明显,IntelliJ IDEA并不是CPI开发人员在开发Groovy脚本时可能习惯的唯一IDE。

仅供参考,下面的屏幕截图提供了相应的项目结构,重要的项目工件以红色突出显示:

为了演示,一个Groovy脚本被放置到一个文件中,该脚本将由运行时节点在iFlow中执行脚本.groovy. 一旦脚本被调整和保存,我们就可以在HTTP请求中提交它,如果我们想让它被运行时节点执行的话。

相应的iFlow已经开发并部署到CPI租户。要将Groovy脚本传递给iFlow,代码段必须放在发送到iFlow端点的httppost请求的主体中。iFlow的组成细节可以在前面提到的博客文章中找到。

cURL将被用作CLI HTTP客户端。

下面的插图描述了所描述的方法的高级概述:

方法1:从IntelliJ IDEA中的终端执行cURL

IntelliJ IDEA中的终端窗口可以以多种方式访问方式:

菜单:视图>工具窗口>终端,键盘快捷键:Alt+F12,"工具"区域中的终端窗口平铺(默认情况下,在底部),使用工具图标(默认情况下,在左下角)并选择"终端"。

在终端窗口中,可以使用所需参数执行cURL,控制台输出中显示iFlow生成的响应:

使用上面的cURL命令,向iFlow的指定端点发送HTTP POST请求,其中,物联网产品,以二进制模式(参数–数据二进制)从提供的脚本文件中读取请求体,响应——包括头(参数——包含)和主体——都被输出到终端。

拥有代码编辑器和已开发和测试的Groovy脚本,以及在IntelliJ IDEA的单个屏幕上并排打开的终端窗口,使开发人员能够在相应的时间内反复运行相同的cURL命令脚本调整完成,脚本由运行时节点执行

方法二:运行自定义Groovy脚本

自定义Groovy脚本CPIcScriptLoadingCaller.groovy文件它的唯一目的是生成一个包含指定文件(Groovy脚本文件)内容的主体的HTTP请求,将其发送到指定的端点,并将响应状态代码、标头和正文输出到控制台,已经开发完成。为了灵活性,请求配置已经外部化,并使用了相应的属性文件,为了简化脚本,特意省略了异常处理(任何运行时异常都将终止脚本执行,异常详细信息将显示在控制台输出中),脚本中没有使用外部依赖项或库。下面提供了这样一个Groovy脚本的示例代码片段: