
# 开发规范
#### API调用认证开发要求
- **开发工具版本要求** ：
  - IntelliJ IDEA：2018.3.5或以上版本。
  
  - Eclipse：3.6.0或以上版本。
  
  - Visual Studio：2019 version 16.8.4或以上版本。
   
- **开发语言环境版本要求** ：
  - Java：1.8.111或以上版本的Java Development Kit。
  
  - Go：1.14及以上版本的Go安装包。
  
  - Python：2.7或3.X版本的Python安装包。
  
  - JavaScript：15.10.0及以上版本的Node.js安装包。
  
  - PHP：8.0.3及以上版本的PHP安装包。
  
  - Android：4.1.2及以上版本的Android Studio。
   
- **浏览器版本要求**：Chrome 89.0或以上版本。
- **SDK签名限制** ：
  - 使用SDK对API请求签名时，仅支持对Body体为12M及以下的请求进行签名。
  
  - 发送API请求时，SDK会将当前时间置于HTTP的X-Sdk-Date头，将签名信息置于Authorization头。签名只在一个有限的时间内是有效的，超时即无效。
  
  - ROMA Connect除了校验X-Sdk-Date的时间格式外，还会校验该时间值与收到请求的时间差，如果时间差超过15分钟，ROMA Connect将拒绝请求。因此，客户端须注意本地与NTP服务器的时间同步，避免请求消息头X-Sdk-Date的值出现较大误差。
   
 
 #### 自定义后端开发要求
- **函数后端开发要求** ：
  - 仅支持使用JavaScript编写函数，JavaScript的运行采用Java Nashorn的运行标准，支持[ECMAScript Edition 5.1](https://www.ecma-international.org/ecma-262/5.1/)规范。
  
  - 函数后端支持的脚本大小最大为32KB。
   
- **数据后端开发要求** ：
  - 若数据后端执行语句查询获取的数据量较大，建议携带offset和limit参数进行分页，避免因响应数据太大导致响应超时。使用方式如下：
    ```
    select * from table01 limit '${limit}' offset ${offset}
    ```
    其中offset和limit参数key在后端服务请求的Headers、Parameters或Body中传递。
    
  
  - 不建议开启结果分页选项，结果分页当前仅支持2000条以内数据的分页。
  
  - 数据后端支持的执行语句大小最大为32KB。
   
 
#### 后端服务签名校验开发要求
- **开发工具版本要求** ：
  - IntelliJ IDEA：2018.3.5或以上版本。
  
  - Eclipse：3.6.0或以上版本。
  
  - Visual Studio：2019 version 16.8.4或以上版本。
   
- **开发语言环境版本要求** ：
  - Java：1.8.111或以上版本的Java Development Kit。
  
  - Python：2.7或3.X版本的Python安装包。
   

- **SDK使用限制** ：
  - Java SDK仅支持hmac和basic类型的后端服务签名。
  
  - Python SDK仅支持hmac类型的后端服务签名。
  
  - C# SDK仅支持hmac类型的后端服务签名。
   
 
