计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
态势感知 SA
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

通过API工具调用APP认证方式的API

更新时间:2024-12-18 GMT+08:00

APP认证方式的API接口可以分别绑定不同的应用,安全级别最高。如果您需要API工具调用APP认证方式的API,则需要先通过JavaScript SDK包中的demo.html手动生成认证信息,再使用API工具调用。

本章节以Postman工具为例,为您介绍如何使用API工具调用APP认证方式的API,主要包含如下几步:
  1. 获取APP和API信息:准备APP和API关键信息,用于API调用。
  2. 获取JavaScript SDK包:下载JavaScript SDK包并进行完整性校验。
  3. 生成认证信息:通过JavaScript SDK包中的demo.html手动生成认证信息。
  4. 调用API:通过Postman工具调用API。

前提条件

  • 已完成APP认证方式的API或API工作流的发布,在服务目录中可以查看已发布的API。
  • 已完成创建应用并将API授权给应用,即API开发者已完成通过应用授权APP认证方式API,或API调用者已完成申请API授权
  • 如果API中入参定义了Static参数,则在API授权时已配置Static参数值。
  • 本章以Postman工具为例,因此需要已安装Postman工具,如果未安装,请至Postman官方网站下载。

约束与限制

  • APP认证方式的API调用前必须先完成通过应用授权APP认证方式API申请API授权操作。
  • 如果API中入参定义了Static参数,则在API授权时应配置Static参数值,否则API工具调用时会导致缺少Static参数值的报错。
  • 如需在本地调用专享版API,则需在创建专享版集群时绑定一个弹性公网IP,作为实例的公网入口。
  • 通过demo.html手动生成的认证信息,有效期为15分钟,超时则失效。
  • 调用数据服务API时,如果查询及返回数据的总时长超过默认60秒则会报超时错误。此时可通过访问日志中的API调用时长信息,根据超时阶段进一步优化API配置。
    ____________Duration information__________ 
    duration: 60491ms //总耗时
    url_duration: 0ms //URL匹配耗时
    auth_duration: 70ms //鉴权耗时
    befor_sql_duration: 402ms //执行SQL预处理耗时
    sql_duration: 60001ms //SQL执行耗时
    after_sql_duration:18ms //执行SQL后处理耗时

获取APP和API信息

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

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

    图1 保存AppKey和AppSecret信息

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

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

    • 调用地址:专享版支持内网地址和外网地址(外网地址需要您在创建集群时绑定弹性IP),如果需要在本地调用专享版API,需要使用外网地址,确保网络互通。
    • 入参:本调用样例中创建了一个具备各类入参位置的API,以便为您介绍各类入参应如何在调用时输入。由于Static是不随API调用者的传值变化的静态参数,因此无需在调用时输入,不需要关注。
      图2 保存调用地址、请求方法和入参信息

获取JavaScript SDK包

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

    图3 下载JavaScript SDK

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

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

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

    SHA256 的 D:\javascript-sdk.zip 哈希:
    43da0b54d6b04d1f5ed7f278c2918c2a63a1ddb8048e2d1c5db60baafb17663c
    CertUtil: -hashfile 命令成功完成。

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

生成认证信息

  1. 解压SDK包,双击打开其中的“demo.html”文件,输入如下参数后,单击“Send request”查看返回值。

    • Key、Secret:API授权应用的AppKey和AppSecret,可参考获取APP和API信息获取。
    • Method、Url:API的请求方法和调用地址,可参考获取APP和API信息获取。

      注意如果入参中包含Path和Query参数,则需要将调用地址中的{path}变量修改为Path参数具体取值,Query参数取值以“?Query参数名=Query参数值”的形式添加到调用地址的最后,如本例中为“?query=1”。

    • Headers:Headers参数无需填写,即使已定义Header参数,此处也要保持为空。
    • Body:使用大括号{}将“"Body参数名":Body参数值”形式的字符串包围在内,如本例中为“{"body":4}”。
    图4 手动生成认证信息

  2. 从返回值中分别保存X-Sdk-Date、Authorization和X-Authorization的内容,例如本例中需要复制如下内容:

    ...
    X-Sdk-Date: 202********55Z
    ...
    Authorization: SDK-HMAC-SHA256 Access=4e7********d6c, SignedHeaders=host;x-sdk-date, Signature=4bf2********4e2
    X-Authorization: SDK-HMAC-SHA256 Access=4e72********d6c, SignedHeaders=host;x-sdk-date, Signature=4bf2********4e2
    ...

调用API

  1. 打开Postman工具,新增一个API请求。
  2. API请求配置如下。

    • 请求方法和调用地址:参考获取APP和API信息获取,与生成认证信息中的请求方法和调用地址保持一致。
      图5 请求方法和调用地址
    • Params:如果Query参数已经以“?Query参数名=Query参数值”的形式添加到调用地址的最后,则此处会自动生成Query Params的值,否则就需要手动输入。
      图6 Params
      如果您需要对调用结果进行自定义调整,则还可以配置如下Query参数:
      • (可选)分页配置:默认情况下,对于配置方式和默认分页的脚本/MyBatis方式API,系统将默认赋值返回量。如果需要获取特定分页数据,您可以修改如下参数设置分页,其中pageSize表示分页后的页面大小,pageNum表示页码。
        图7 分页参数设置
        说明:

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

      • (可选)排序配置:默认情况下,系统会根据排序参数信息给出默认排序情况,自定义排序默认为升序。如果需要修改排序情况,您可以修改pre_order_by参数。其中排序参数描述pre_order_by的值填写形式为“排序参数参数名:ASC”或“排序参数参数名:DESC”,其中ASC表示升序,DESC表示降序,多个排序参数描述以“英文分号”进行分隔。
        图8 排序参数设置
        对于pre_order_by的值,您可以进行如下修改:
        • 删掉某可选的排序参数,则此排序参数不再参与排序。
        • 修改自定义排序方式的排序参数为升序或降序方式,则此排序参数按照修改后的排序方式排序。
        说明:
        pre_order_by的值,不支持进行如下修改,否则会修改不生效或导致调用报错。
        • 删掉某必选的排序参数,则此排序参数依然会正常参与排序,删除不生效。
        • 调整排序参数的前后顺序,则排序依然以配置方式API配置排序参数时的排序参数顺序或脚本/MyBatis方式API SQL中的排序参数顺序为准,调整不生效。
        • 修改升序或降序的排序参数为其他排序方式,则会调用失败,不允许修改。
      • (可选)“返回总条数”配置:在创建API时,如果已打开“返回总条数”开关,则当API对应的数据表数据量较大时,获取数据总条数将会比较耗时。此时,如果需要在调用时不计算并返回数据总条数,可以修改use_total_num参数。use_total_num参数用于控制是否计算并返回数据总条数,值为1返回数据总条数,值非1不返回数据总条数。
        图9 “返回总条数”参数配置
    • Headers:将2中保存的X-Sdk-Date、Authorization和X-Authorization及其值依次填入,并将Header参数的参数名和参数值填入其中。
      说明:

      默认情况下,Postman工具会自动勾选Host并从URI中生成Host值,无需手动填写。

      图10 Headers
    • Body:选择raw格式,使用大括号{}将“"Body参数名":Body参数值”形式的字符串包围在内,如本例中为“{"body":4}”。
      图11 Body

  3. API请求配置完成后,单击“Send”发送请求到服务端,然后查看返回结果。返回"errCode":"DLM.0"即表示API调用成功。如果失败,则请根据报错信息进行修复。

    说明:

    如调用失败提示“Could not get any response”,可根据提示在Postman设置中关闭“SSL certificate verification”选项或关闭Proxy代理,然后再次尝试运行。

    图12 调用API

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容