更新时间:2023-05-30 GMT+08:00

创建数据API

概述

ROMA Connect支持把数据源定义为后端服务,实现从数据源中读写数据,并以API的形式对外开放。

前提条件

  • ROMA Connect已接入数据源,具体请参考接入数据源
  • 如果后端服务需要使用签名密钥对请求发送方进行认证,请提前创建签名密钥
  • 部署并发布后端服务时,如果需要使用自定义认证方式进行API的安全认证,请提前创建自定义认证
  • 数据源存储的单行数据大小建议不超过2KB,若超过该限制会导致自定义后端响应异常。
  • 当数据源返回numeric类型数据时,如果该数据的小数位精度超过6位,且数值为0时,数据后端会把该数据值转换为科学计数法。因此,不建议把numeric类型数据的小数位精度设置为超过6位。

操作步骤

  1. 登录ROMA Connect控制台,在“实例”页面单击实例上的“查看控制台”,进入实例控制台。
  2. 创建后端。
    1. 在左侧的导航栏选择“服务集成 APIC > 自定义后端”,在“后端列表”页签中单击“创建后端”。
    2. 在创建后端页面配置后端信息,完成后单击“立即创建”。
      表1 后端请求配置

      参数

      配置说明

      后端名称

      填写后端的名称,根据规划自定义。建议您按照一定的命名规则填写后端名称,方便您快速识别和查找。

      集成应用

      选择后端所属的集成应用。若没有可用的集成应用,可单击右侧的“新建集成应用”,创建一个集成应用。

      后端请求方法

      选择后端的请求方法,可选择“GET”、“POST”、“PUT”和“DELETE”。

      后端请求路径

      填写后端的请求路径,格式如:/getUserInfo/userId。

      请求路径中的内容区分大小写。

      后端安全认证

      选择后端的安全认证方式。

      • 签名密钥:表示使用签名密钥的方式,对请求发送方进行认证。若使用签名密钥进行认证,调用该后端服务的API,也需要绑定相同的签名密钥。
      • 无认证:表示不对调用请求进行认证。

      描述

      填写后端的描述信息。

      高级设置

      版本号

      填写后端的版本号,自定义,用于区分不同的后端服务版本,如V1.0。

      入参定义

      根据实际需要定义后端服务的请求参数。

      在“入参定义”下单击“新增入参定义”,添加自定义后端的请求参数。

      • 名称:请求参数的名称,自定义。
      • 参数位置:请求参数在后端服务请求中的位置,可选择“Headers”和“Parameters”。
      • 测试界面默认值:仅用于后续的自定义后端测试步骤,作为参数的默认测试值。在自定义后端部署时不生效。
      • 必填:在后端服务请求中,请求参数是否必填。
      • 描述:填写参数的描述信息。

      返回类型

      选择后端的响应数据格式,可选择“JSON”、“XML”和“STREAM”。

      是否格式化

      是否将响应消息体按选择的返回类型进行格式化。

      后端创建完成后,页面自动跳转到该后端的编辑器页面,后端类型默认为数据后端。

  3. 配置数据后端。
    1. 在编辑器页面左侧单击“添加数据源”。
    2. 在添加数据源弹窗中配置数据源信息,完成后单击“立即添加”。
      表2 数据源配置

      参数

      配置说明

      选择数据源

      选择接入数据源中已创建的数据源。

      选择执行语句类型

      选择执行语句的类型,可选择“SQL”和“SP”(Stored Procedure)。

      如果是Redis或MongoDB数据源,选择“SQL”,实际执行语句为NoSQL。

      高级设置

      返回对象

      填写返回对象的名称,执行语句的执行结果将封装在该对象中返回。

      结果分页选项

      执行语句的执行结果是否支持分页返回。若同一个数据后端添加多个数据源时,不支持配置“结果分页选项”。

      若开启结果分页选项,可在后端请求中添加查询参数pageNum和pageSize,对查询结果进行分页,并指定返回第几页的数据。

      • pageNum:分页时指定要返回第几页的数据,从1开始。
      • pageSize:分页时每页包含的数据条数。

      开启和关闭结果分页选项时,响应结果的结构会有所不同,具体请参见结果分页示例说明

      说明:
      结果分页当前仅支持2000条以内数据的分页,若超过2000条数据,建议在执行语句中携带offset和limit参数进行分页。未开启“预编译”时,使用示例如下:
      select * from table01 limit ${limit} offset ${offset}

      其中offset和limit参数值在后端服务请求的Headers、Parameters或Body中传递。

      若数据源开启了“预编译”,则还需要调用相应的函数对offset和limit参数进行数据类型转换,具体请参见自定义后端开发(数据后端)

      预编译

      是否对执行语句进行预编译,可以防止SQL注入风险。

      结果分页示例说明

      假设“返回对象”设置为“mydata”,执行语句从数据源查询返回了5条数据结果。

      • 在不开启“分页结果选项”时,会把全部5条数据作为响应结果返回给用户,响应结果示例如下。
        {
          "mydata": [
            {
              "id": 1,
              "name": "aaa"
            },
            {
              "id": 2,
              "name": "bbb"
            },
            {
              "id": 3,
              "name": "ccc"
            },
            {
              "id": 4,
              "name": "ddd"
            },
            {
              "id": 5,
              "name": "eee"
            }
          ]
        }
      • 在开启“分页结果选项”时,假设请求参数pageNum=1,pageSize=2,则执行语句查询到的5条数据会根据pageSize进行分页,每页2条数据,并根据pageNum只把第1页的2条数据作为响应结果返回给用户,响应结果中total为执行语句查询到的数据总条数5。响应结果示例如下:
        {
          "mydata": {
            "total": 5,
            "data": [
              {
                "id": 1,
                "name": "aaa"
              },
              {
                "id": 2,
                "name": "bbb"
              }
            ],
            "pageSize": 2,
            "pageNum": 1
          }
        }
    3. 添加数据源后,在编辑器左侧选择数据源,然后您可以在右侧的语句编辑框中为数据源添加执行语句。

      具体请参见自定义后端开发(数据后端)

      如果是Redis或MongoDB数据源,实际为Redis或MongoDB的数据处理命令。

    4. 完成后在页面右上角单击“保存”,保存数据后端配置。
  4. 测试后端功能。
    在页面右上角单击“测试”,在下方的“测试参数”处,根据后端服务的定义添加请求参数,然后单击“立即测试”,发送请求。
    • 在“执行结果”处,可查看后端的响应结果。
    • 在“执行历史”处,可查看后端的历史测试记录。单击测试记录,可以将历史测试参数导入到左侧测试参数中,并再次测试。
  5. 部署后端。

    后端测试完成后,在页面右上角单击“部署”,在确认弹窗中单击“立即部署”,部署后端服务。

  6. 发布数据API。
    1. 在页面右上角单击“发布”。
    2. 在发布弹窗中配置前端API的相关信息,完成后单击“立即发布”,为该后端创建一个对应的前端数据API,并发布到环境上。
      表3 发布配置

      参数

      配置说明

      所属分组

      选择前端API所属的API分组。若没有可用的API分组,可单击右侧的“创建分组”,创建一个API分组。

      说明:

      创建API后,将无法修改API所属的API分组,API分组关系到API的访问域名,请谨慎选择。

      发布环境

      选择前端API要发布的环境。如果没有您需要的环境,可单击右侧的“创建环境”,创建一个环境。

      前端安全认证

      选择前端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时,表示不开启重试功能,但除POST和PATCH外的其他请求类型会默认重试1次。
      • 值为0-10时,表示开启重试功能,并根据设置的值执行重试。

      高级设置

      前端请求方法

      选择前端API的请求方法。“ANY”表示该API支持任意请求方法。

      前端请求路径

      填写前端API的请求路径,格式如:/getUserInfo/userId。

      请求路径中的内容区分大小写。

      支持跨域(CORS)

      是否支持跨域访问API。

      浏览器出于安全性考虑,限制从页面脚本内发起的跨域请求,此时页面只能访问同源的资源。而CORS允许浏览器向跨域服务器发送XMLHttpRequest请求,从而实现跨域访问。跨域访问API请参见配置跨域访问API