通过函数API开放数据
前提条件
- 确保业务系统所在网络与ROMA Connect的网络互通。
- 确保业务系统的数据库为ROMA Connect支持的数据源类型。
函数API支持的数据源请参见服务集成支持的数据源。
- 准备一个可用的独立域名,用于作为API的访问域名。
确保已完成独立域名到“服务集成APIC连接地址”的域名解析配置,具体请参考增加A类型记录集。
- 如果函数API使用HTTPS请求协议,您还需要为独立域名申请SSL证书,并获取pem格式的SSL证书内容和密钥。
业务系统开放函数API
- 创建集成应用。
ROMA Connect实例中的资源都要归属到某个集成应用下,在创建其他资源前,您需要确保有一个集成应用。若已有可用的集成应用,可跳过此步骤。
- 登录ROMA Connect控制台,在“实例”页面单击实例上的“查看控制台”,进入实例控制台。
- 在左侧的导航栏选择“集成应用”,单击页面右上角的“创建集成应用”。
- 在创建集成应用弹窗中填写集成应用的“名称”,然后单击“确认”。
- 创建函数后端。
通过自定义后端,把业务系统的数据转换为一个后端服务。
- 在左侧的导航栏选择“服务集成 APIC > 自定义后端”,在“后端列表”页签中单击“创建后端”。
- 在创建后端页面配置后端信息,完成后单击“立即创建”。
表1 后端请求配置 参数
配置说明
后端名称
填写后端的名称,根据规划自定义。建议您按照一定的命名规则填写后端名称,方便您快速识别和查找。
集成应用
选择后端所属的集成应用。
后端请求方法
选择后端的请求方法,可选择“GET”、“POST”、“PUT”和“DELETE”。
后端请求路径
填写后端的请求路径,格式如:/getUserInfo/userId。
请求路径中的内容区分大小写。
后端安全认证
选择后端的安全认证方式。
- 签名密钥:表示使用签名密钥的方式,对请求发送方进行认证。若使用签名密钥进行认证,调用该后端服务的API,也需要绑定相同的签名密钥。
- 无认证:表示不对调用请求进行认证。
描述
填写后端的描述信息。
高级设置
版本号
填写后端的版本号,自定义,用于区分不同的后端服务版本,如V1.0。
入参定义
根据实际需要定义后端服务的请求参数。
在“入参定义”下单击“新增入参定义”,添加自定义后端的请求参数。
- 名称:请求参数的名称,自定义。
- 参数位置:请求参数在后端服务请求中的位置,可选择“Headers”和“Parameters”。
- 测试界面默认值:仅用于后续的自定义后端测试步骤,作为参数的默认测试值。在自定义后端部署时不生效。
- 必填:在后端服务请求中,请求参数是否必填。
- 描述:填写参数的描述信息。
返回类型
选择后端的响应数据格式,可选择“JSON”、“XML”和“STREAM”。
是否格式化
是否将响应消息体按选择的返回类型进行格式化。
后端创建完成后,页面自动跳转到该后端的编辑器页面,后端类型默认为数据后端。
- 在编辑器的左上角单击“文件 > 新建函数后端 > 调用Mysql数据源示例”,在弹窗中单击“确定”,切换后端类型为函数后端。
- 在右侧的语句编辑框中根据系统提供的函数脚本示例,修改数据源相关接入配置。
importClass(com.roma.apic.livedata.client.v1.DataSourceClient); importClass(com.roma.apic.livedata.config.v1.DataSourceConfig); function execute(data){ var config = new DataSourceConfig() config.setType("mysql") config.setUrl("jdbc:mysql://127.0.0.1:3306/db?allowPublicKeyRetrieval=true") config.setUser("xxxx") config.setPassword("xxxx") var ds = new DataSourceClient(config) return ds.execute("SELECT * FROM person where name = ? and age = ?","Tom",20); }
- 在setType、setUrl、setUser和setPassword处配置数据源的连接信息,具体参数配置说明请参考DataSourceConfig类说明。
- 在ds.execute处设置SQL执行语句,通过执行语句获取要返回的数据。
- 完成后在页面右上角单击“保存”,保存函数后端配置。
- 测试后端功能。
在页面右上角单击“测试”,在下方的“测试参数”处,根据后端服务的定义添加请求参数,然后单击“立即测试”,发送请求。在“执行结果”栏查看后端的响应是否返回所期望的数据。
- 后端测试完成后,在页面右上角单击“部署”,在确认弹窗中单击“确定”,部署后端服务。
- 发布函数API。
把函数后端发布为函数API并部署到环境中,即可供其他业务系统调用。
- 在页面右上角单击“发布”。
- 在发布弹窗中配置前端API的相关信息,完成后单击“立即发布”,为该后端创建一个对应的前端API,并发布到环境上。
API发布完成后,自动跳转到对应前端API的API运行页面。
表2 发布配置 参数
配置说明
所属分组
选择前端API所属的API分组。若没有可用的API分组,可单击右侧的“创建分组”,创建一个API分组。
发布环境
选择前端API要发布的环境,对外正式开放API时,应选择默认环境“RELEASE”。
前端安全认证
选择前端API的安全认证方式,推荐使用APP认证方式。
- APP认证:表示由ROMA Connect对API请求进行安全认证。用户调用API时,使用集成应用的Key和Secret进行API请求的安全认证。
- 华为IAM认证:表示由IAM对API请求进行安全认证。用户调用API时,使用Token或AK/SK进行API请求的安全认证。
- 自定义认证:表示使用自定义的函数API对API请求进行安全认证。
- 无认证:表示API请求不需要认证。
自定义认证
仅当“前端安全认证”选择“自定义认证”时需要配置。
选择已创建的前端类型自定义认证。
前端请求协议
选择前端API使用的请求协议,可选择“HTTP”、“HTTPS”和“HTTP&HTTPS”,传输重要或敏感数据时推荐使用HTTPS。
后端超时 (ms)
后端服务请求的超时时间,默认为60000ms。
重试次数
ROMA Connect调用后端服务失败后的重试次数。
- 值为-1时,表示不开启重试功能。
- 值为0-10时,表示开启重试功能,并根据设置的值执行重试。
高级设置
前端请求方法
选择前端API的请求方法。“ANY”表示该API支持任意请求方法,用于获取数据库数据的API一般使用GET方法即可。
前端请求路径
填写前端API的请求路径,格式如:/getUserInfo/userId。
请求路径中的内容区分大小写。
支持跨域(CORS)
是否支持跨域访问API。
浏览器出于安全性考虑,限制从页面脚本内发起的跨域请求,此时页面只能访问同源的资源。而CORS允许浏览器向跨域服务器发送XMLHttpRequest请求,从而实现跨域访问。跨域访问API请参见配置跨域访问API。
- 为函数API绑定独立域名。
- 在页面左上角选择“分组信息”,在“域名管理”下单击“绑定独立域名”。
- 在绑定独立域名弹窗中填写域名配置信息,完成后单击“确定”。
表3 独立域名配置 参数
配置说明
域名
填写要绑定的域名。
支持最小TLS版本
选择域名访问所使用的最小TLS版本。
支持http to https自动重定向
是否支持HTTP到HTTPS的重定向。
仅当API的请求协议选择“HTTPS”或“HTTP&HTTPS”,且独立域名已绑定SSL证书时重定向生效。
说明:由于浏览器限制,非GET或非HEAD方法的重定向可能导致数据丢失,因此API请求方法限定为GET或HEAD。
- (可选)如果函数API支持HTTPS请求协议,则需要为独立域名绑定SSL证书。否则跳过此步骤。