更新时间:2025-12-30 GMT+08:00
分享

调用API

不同认证方式的API支持的调用方式也有所不同,详见表1。本示例以SDK调用APP认证方式为例,详细介绍如何通过JAVA SDK调用API。

前提条件

  • 已完成API开发,已通过API审核。
  • 已通过应用授权APP认证方式授权API调用。
  • 已完成JAVA开发环境搭建,安装Java Development Kit 1.8.111或以上版本,如果未安装,请至Oracle官方下载页面下载。
  • 获取并安装IntelliJ IDEA,如果未安装,请至IntelliJ IDEA官方网站下载。

约束与限制

  • 如需在本地调用专享版API,则需在创建专享版集群时绑定一个弹性公网IP,作为实例的公网入口。共享版API默认可通过公网访问。
  • 调用数据服务API时,如果查询及返回数据的总时长超过默认60秒则会报超时错误。此时可通过访问日志中的API调用时长信息,根据超时阶段进一步优化API配置。

获取APP和API信息

  1. DataArts Studio控制台首页,选择对应工作空间的“数据服务”模块,进入数据服务页面。
  2. 在左侧导航栏选择服务版本(例如:专享版),进入总览页。
  3. 获取API授权应用的AppKey和AppSecret(如已授权多个APP,获取其中一个APP信息即可)。

    在左侧导航栏中进入应用管理,找到API授权的应用,并单击应用名称查看APP的完整信息,保存AppKey和AppSecret。

    图1 保存AppKey和AppSecret信息

  4. 获取待调用API的调用地址、请求方法和入参信息。

    在左侧导航栏中进入API管理,找到待调用的API,单击API名称查看API的完整信息,保存调用地址、请求方法和入参信息。

    专享版支持内网地址和外网地址(外网地址需要您在创建集群时绑定弹性IP),如果需要在本地调用专享版API,需要使用外网地址,确保网络互通。共享版使用APIG地址,可直接选择该地址进行调用。
    图2 保存调用地址、请求方法和入参信息

获取SDK包

  1. 在数据服务页面,单击左侧导航栏的SDK,然后下载Java SDK。

    图3 下载SDK

  2. 进行SDK包完整性校验。Windows操作系统下,打开本地命令提示符框,输入如下命令,在本地生成已下载SDK包的SHA256值,其中,“D:\java-sdk.zip”为SDK包的本地存放路径和SDK包名,请根据实际情况修改。

    certutil -hashfile D:\java-sdk.zip SHA256

    命令执行结果示例,如下所示:

    SHA256 的 D:\java-sdk.zip 哈希:
    96fced412700cf9b863cb2d867e6f4edf76480bc679416efab88a9e1912503b9
    CertUtil: -hashfile 命令成功完成。

    对比所下载SDK包的SHA256值和下表中对应语言SDK包的SHA256值。如果一致,则表示下载过程不存在篡改和丢包。

    表1 SDK包及对应的SHA256值

    不同语言SDK包

    SHA256值

    Java

    96fced412700cf9b863cb2d867e6f4edf76480bc679416efab88a9e1912503b9

    Go

    f448645da65b4f765d9569fc97ca45dc3e8f1ce4f79d70c5c43934318521d767

    Python

    54b4984d91db641d2b1b0e77064c162850cb2511a587f95e2f8b8340e7afa128

    C#

    b66caf856ffccb61fe758872aac08876aa33fb0cf5f4790e3bec163593b2cbae

    JavaScript

    43da0b54d6b04d1f5ed7f278c2918c2a63a1ddb8048e2d1c5db60baafb17663c

    PHP

    394c068420a3817f32d5d88b6c1632978f573f2a685e4a1d10c2f698e0f6786e

    C++

    abae5473d47594f88dcd5eaa0902dc12cd6f1e3bd63c0b82d9d1fab8b4351f54

    C

    a376573fe8aa3a636a6d123926ddc3dca11748b289b8c2c16a5056830a095acb

    Android

    c19175d736f05b1945dab4675df19311834ede0d9b1978b11b50c86687baf85c

通过SDK调用API

  1. 解压获取的Java SDK包,并在IntelliJ IDEA中导入SDK工程。
  2. 导入成功后,打开main.java文件,修改如下图红框所示的内容:

    图4 修改main.java
    • 设置API的请求方法和调用地址。
      注意如果入参中包含Path参数,则需要将调用地址中的{path}变量修改为具体取值。本示例参考如下进行设置:
      1
      2
      request.setMethod("GET");
      request.setUrl("https://xx.xx.xx.xx/TestScore");
      
    • 设置Query、Header和Body参数的取值。

      注意Body参数需要使用双引号和大括号"{}"将“"Body参数名":Body参数值”形式的字符串包围在内,且其内字符串中的双引号""需要使用\进行转义。因本示例不涉及Body参数,可以将setBody调用方法注释掉。addQueryStringParam调用方法参考如下进行设置:

      • 查询所有考生英语考试成绩。

        无需传入Query参数,可以将addQueryStringParam调用方法注释或直接删除。

      • 查询特定考生的成绩。
        request.addQueryStringParam("Number", "xxxxxx");
      • 查询特定考生是否通过英语考试。通过考试的分数线,以425为例。
        request.addQueryStringParam("Number", "xxxxxx");
        request.addQueryStringParam("Score", "425");
      • 查询通过英语考试的考生名单。通过考试的分数线,以425为例。
        request.addQueryStringParam("Score", "425");
      • 对通过英语考试的考生名单按成绩高低进行排序。通过考试的分数线,以425为例。
        request.addQueryStringParam("Score", "425");
    • (可选)设置排序参数取值。

      系统会根据排序参数信息给出默认排序情况,自定义排序默认为升序。如果需要修改排序,可以修改pre_order_by参数的值为“排序参数参数名:ASC”或“排序参数参数名:DESC”,其中ASC表示升序,DESC表示降序,多个排序参数描述以“英文分号”进行分隔。

      本示例对通过英语考试的考生名单按成绩高低进行排序时,参考如下进行设置,其他查询无需设置。
      1
      request.addQueryStringParam("pre_order_by", "Score:DESC");
      
    • (可选)设置分页参数。

      默认情况下,对于配置方式和默认分页的脚本/MyBatis方式API,系统将默认赋值返回量。如果想获取特定分页数据,可以修改如下参数设置分页,其中pageSize表示分页后的页面大小,pageNum表示页码。

      本示例可以不设置。
      1
      2
      request.addQueryStringParam("page_size", "100");
      request.addQueryStringParam("page_num", "1"); 
      

      自定义分页的脚本/MyBatis方式API是在创建API时将分页逻辑写到取数SQL中,因此不支持在调用时修改分页设置。

    • (可选)设置返回总条数。

      在创建API时,如果已打开“返回总条数”开关,则当API对应的数据表数据量较大时,获取数据总条数将会比较耗时。如果需要在调用时不计算并返回数据总条数,可以修改use_total_num参数用于控制是否计算并返回数据总条数,值为1返回数据总条数,值非1不返回数据总条数。

      本示例前面未打开“返回总条数”开关,可以不设置。
      1
      request.addQueryStringParam("use_total_num", "0");
      

  3. 配置AppKey和AppSecret。由于认证用的AppKey和AppSecret编码到代码中或者明文存储都有很大的安全风险,因此建议在配置文件或者环境变量中存放,确保安全,本示例从环境变量中获取。

    图5 配置AppKey和AppSecret

  4. 运行程序后,查看API调用结果。200消息中的"errCode":"DLM.0"即表示API调用成功。如果失败,则请根据报错信息进行修复。

    图6 运行程序

相关文档