Board logo

标题: 和开发 Web 服务时的复杂繁琐说再见(2)开发示例 [打印本页]

作者: look_w    时间: 2018-7-16 11:45     标题: 和开发 Web 服务时的复杂繁琐说再见(2)开发示例

访问和创建表格安装了 ADIEU 工具并登录到 ADIEU 服务器后,将在 Web 浏览器窗口看到一个名为 samples 的文件夹。单击该文件夹,将看到 samples 文件夹中的内容,如  中所示。
图 1. ADIEU samples 文件夹的内容文档图标是作为基于卡片的应用程序和组件的容器使用的 ADIEU 表格。可以将表格组织为用户定义的文件夹,可以在这些文件夹中定义其他 ADIEU 用户对其内容的访问特权。
对于此示例,请在根文件夹中创建 dWorks 文件夹,并创建名为 stock 的新表格,如 中所示。双击表格图标时,ADIEU 将在浏览器中打开一个编辑器,可以在其中看到包含在该表格中的卡片。这些卡片与用于实现应用程序的软件组件和数据相对应。
图 2. 新 dWorks 文件夹中的 stock 表格将外部 Web 服务作为新卡片类型导入ADIEU 使用存储在 WSDL 文件(可在 Internet 上通过用户提供的 URL 访问)中的服务描述生成用于调用 Web 服务的新卡片类型。ADIEU 的当前版本仅会自动导入使用简单 XML 数据类型作为其参数和结果的 Web 服务。该工具的未来版本有望支持更为复杂的 XML 类型和架构。对于当前版本,如果需要使用具有复杂类型的 Web 服务的卡片,程序员必需通过扩展 ADIEU 基类对其进行开发。
若要导入外部 Web 服务,以在 ADIEU 中使用,请选择 Import New Card Type 选项。 中所示的对话框将随后出现在浏览器中。
图 3. “Import New Card Type”对话框在对话框的输入字段中输入以下 URL:
http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl
该 URL 是 XMethods 网站上列出的名为 StockQuote 的 Web 服务的 WSDL。此 Web 服务将股票代号(如 IBM 或 YHOO)作为输入,将返回一个有时间延迟的股票报价(以美元计价)。使用向导从 WSDL 描述中选择了要使用的服务和端口后,将看到 中所示的对话框。
图 4. 在“Import External Web Service”对话框中定义新卡片类型和选择操作通过输入 XMethods Web Service 作为卡片类别,输入 Get Stock Quote 作为卡片类型,就注册了用于在 ADIEU 中调用此 Web 服务的卡片类型,该卡片类型将出现在“Add Card”对话框中。
采用同样的方式,输入 XMethods 所提供的名为 Currency Exchange Rate 的 Web 服务的以下 WSDL:
http://www.xmethods.net/sd/2001/CurrencyExchangeService.wsdl
使用相同的类别名称 XMethods Web Service,并将卡片类型设置为 Get Currency Exchange Rate。该 Web 服务采用两个国家名称作为输入参数,将返回两种货币之间的兑换比率。这个新的卡片类型也在 ADIEU 中进行了注册,会出现在“Add Card”对话框的 XMethods Web Service 类别下,如 中所示。
图 5. “Add Card”对话框将卡片添加到表格中通过在“Add Card”对话框中添加与 Web 服务对应的图标,将 中所示的卡片添加到名为 stock 的表格中。
图 6. 添加到 stock 表格中的两张卡片如 中所示,通过点击每张卡片上的运行按钮,这些卡片可以单独地执行。在此示例中,卡片 A 将股票代码作为输入并输出该股票的美元报价,而卡片 B 则输出从美元到日元的兑换比率。
图 7. ADIEU 卡片的运行按钮字段引用与表达式卡片 A 的 Result 字段包含以美元计价的股票报价,而卡片 B 的 Result 字段则包含从美元到日元的兑换比率。通过将两个值相乘,服务可以计算以日元计价的股票报价。向表格中添加一个  Variable 卡片,向此卡片添加一个 stockYen 字段,并在该字段中输入 所示的表达式。此工作可以通过手动完成,也可以通过使用输入帮助功能进行,在后一种情况下,用户无需通过键盘输入字段名称了。
图 8. 向 Variable Card 添加表达式只要输入了表达式,就将在字段的下方显示乘法的结果。ADIEU 中的所有此类可编辑字段都如本例中所示,具有内容和值。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0