计算
弹性云服务器 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
威胁检测服务 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

配置示例

更新时间:2022-12-05 GMT+08:00

前提条件

  • 已获取IAM和ROMA Connect服务所在区域的Endpoint地址。
  • 已获取ROMA Connect实例的实例ID,以及实例所在区域的项目ID。
  • 在调用ROMA Connect的接口时,需要为调用请求添加认证信息。有Token认证和AK/SK认证两种认证方式,您可以选择其中一种进行认证鉴权,具体操作请参见认证鉴权。推荐使用AK/SK认证,其安全性比Token认证要高。

获取集成应用ID

在ROMA Connect实例中创建的资源(如数据源、API等)都要归属到某个集成应用下,在创建资源前需要获取资源所归属的集成应用ID。

  • 如果有可用的集成应用,则调用“查询应用列表”接口,获取集成应用ID。
    请求示例:
    GET /v2/{project_id}/instances/{instance_id}/apps

    其中加粗部分需要根据接口参数说明,替换为实际的数据值。

    响应示例:

    {
       "total" : 1,
       "size" : 1,
       "apps" : [ {
         "id" : "b2e6b145********f4b8029f95a3",
         "name" : "AppName",
         "remark" : "example"
       } ],
        ...
    }

    响应消息中“apps”的值为查询到的集成应用信息列表,找到要使用的集成应用,其中“id”的值即为集成应用ID,保存并留待后续步骤使用。

  • 如果没有可用的集成应用,则调用“创建应用”接口,创建一个集成应用并获取集成应用ID。
    请求示例:
    POST /v2/{project_id}/instances/{instance_id}/apps
    
    {
      "name" : "AppName",
      "key" : "xxxxxx",
      "secret" : "******"
    }

    其中加粗部分需要根据接口参数说明,替换为实际的数据值。

    响应示例:

    {
       "id" : "b2e6b145********f4b8029f95a3",
       "name" : "AppName",
       "remark" : "example",
        ...
    }

    响应消息中“id”的值即为集成应用ID,保存并留待后续步骤使用。

接入数据源

调用“创建数据源”接口,接入需要开放数据的数据库,并获取返回的数据源ID。此处以MySQL数据库为例进行说明,其他类型数据库请参考接口的参数说明。

请求示例:

POST /v2/{project_id}/fdi/instances/{instance_id}/datasources

{
   "datasource_name" : "fdi_ds_mysql",
   "datasource_type" : "MYSQL",
   "content" : {
     "host" : "10.10.10.10",
     "port" : "3306",
     "database_name" : "romatest",
     "user_name" : "romatest",
     "password" : "******",
     "mode" : "default"
   },
   "app_id" : "xxxxxx",
   "description" : "test"
}

其中加粗部分需要根据接口参数说明,替换为实际的数据值。xxxxxx获取集成应用ID中获取并保存的集成应用ID。

响应示例:

{
   "datasource_id" : "0fd3669d********ed3160ed051",
   "datasource_name" : "fdi_ds_api_v2",
   "datasource_type" : "API",
    ...
}

响应消息中“datasource_id”的值即为数据源ID,保存并留待后续步骤使用。

创建数据后端

通过创建数据后端,把要开放的数据库转换为API的后端服务。

  1. 调用“创建后端API”接口,创建一个自定义后端,并获取返回的后端API编号。
    请求示例:
    POST /v2/{project_id}/apic/instances/{instance_id}/livedata-apis
    
    {
       "name" : "data_api_demo",
       "path" : "/data/test",
       "method" : "GET",
       "roma_app_id" : "xxxxxx",
       "version" : "1.0",
       "content_type" : "json",
       "return_format" : false,
       "parameters" : [
          {
             "name" : "param1",
             "in" : "Parameters",
             "required" : true
          } 
       ]
    }

    其中加粗部分需要根据接口参数说明,替换为实际的数据值。xxxxxx获取集成应用ID中获取并保存的集成应用ID。“parameters”下可根据实际需要设置多个后端请求参数,或不设置请求参数。

    响应示例:

    {
       "id" : "bd42841c********c6d8a06e37",
       "name" : "data_backend",
       "roma_app_id" : "98df09fb********2b55ca6f3d5d",
       "content_type" : "json",
        ...
    }

    响应消息中“id”的值即为后端API编号,保存并留待后续步骤使用。

  2. 调用“创建后端API脚本”接口,配置数据后端。
    请求示例:
    POST /v2/{project_id}/apic/instances/{instance_id}/livedata-apis/{ld_api_id}/scripts
    
    {
       "api_type" : "data",
       "scripts" : [ 
          {
             "ds_id" : "xxxxxx",
             "type" : "SQL",
             "object_name" : "data",
             "content" : "ZnVuY3Rpb24g******cmxkISIKfQ=="
          }
       ]
    }

    其中加粗部分需要根据接口参数说明,替换为实际的数据值。{ld_api_id}创建自定义后端时获取并保存的后端API编号,xxxxxx接入数据源中获取并保存的数据源ID。

获取API分组ID

API分组是同一类业务API的集合,每个API都要归属到某个API分组下,在发布数据API前需要获取API所归属的API分组ID。

API只有在发布到环境后,才能被外部用户调用,在发布数据API前需要获取API要发布的环境ID。
  • 如果有可用的API分组,则调用“查询分组列表”接口,获取分组ID。
    请求示例:
    GET /v2/{project_id}/apic/instances/{instance_id}/api-groups

    其中加粗部分需要根据接口参数说明,替换为实际的数据值。

    响应示例:

    {
       "total" : 2,
       "size" : 2,
       "groups" : [ {
         "name" : "api_group_001",
         "id" : "c77f5e81d********ef2b0ac7600",
         "remark" : "group1",
          ...
       },
       ...
      ] 
    }

    响应消息中“groups”的值为查询到的API分组列表,找到要使用的API分组,其中“id”的值即为API分组ID,保存并留待后续步骤使用。

  • 如果没有可用的API分组,则调用“创建API分组”接口,创建一个API分组并获取分组ID。
    请求示例:
    POST /v2/{project_id}/apic/instances/{instance_id}/api-groups
    
    {
       "name" : "api_group_001",
       "version" : "V2",
       "roma_app_id" : "xxxxxx"
    }

    其中加粗部分需要根据接口参数说明,替换为实际的数据值。xxxxxx获取集成应用ID中获取并保存的集成应用ID。

    响应示例:

    {
       "name" : "api_group_001",
       "id" : "c77f5e81d********ef2b0ac7600",
       "remark" : "group1",
        ...
    }

    响应消息中“id”的值即为API分组ID,保存并留待后续步骤使用。

部署并发布数据API

  1. 调用“部署后端API”接口,部署数据后端并发布一个数据API,获取返回的前端数据API编号。

    请求示例:

    POST /v2/{project_id}/apic/instances/{instance_id}/livedata-apis/{ld_api_id}/deploy
    
    {
       "deploy_front_api" : true,
       "roma_app_id" : "xxxxxx"
       "auth_type" : "APP",
       "group_id" : "yyyyyy",
       "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID",
       "method" : "GET",
       "path" : "/data/test",
       "protocol" : "HTTPS",
       "backend_timeout" : 5000,
       "cors": false
    }

    其中加粗部分需要根据接口参数说明,替换为实际的数据值。{ld_api_id}创建数据后端时获取并保存的后端API编号,xxxxxx获取集成应用ID中获取并保存的集成应用ID,yyyyyy获取API分组ID中获取并保存的API分组ID。

    响应示例:

    {
       "id" : "5e19590f54444d8a9b8fe698ce26e9fe",
       "deploy_time" : "2020-09-19T06:58:13Z",
       "api_id" : "1d0432f1a********ae7bd96ca6",
       "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID",
        ...
    }

    响应消息中“api_id”的值即为前端数据API的编号,保存并留待后续步骤使用。

  2. (可选)在发布数据API时无法为数据API添加请求参数,若需要为数据API添加请求参数,则调用“修改API”接口为数据API添加请求参数。

    请求示例:

    PUT /v2/{project_id}/apic/instances/{instance_id}/apis/{api_id}
    
    {
       "name": "Data_API",
       "type": 1,
       "req_protocol": "HTTPS",
       "req_method": "GET",
       "req_uri": "/data/test",
       "auth_type": "APP",
       "backend_type": "HTTP",
       "group_id": "c77f5e81d********ef2b0ac7600",
       "req_params": [
           {
               "name": "param01",
               "type": "STRING",
               "location": "QUERY"
           }
       ],
    }

    其中加粗部分需要根据接口参数说明,替换为实际的数据值。{api_id}发布数据API时获取并保存的前端数据API编号,“req_protocol”、“req_method”、“req_uri”、“auth_type”、“group_id”需与发布数据API时设置的值保持一致。“parameters”下可根据实际需要设置多个后端请求参数,或不设置请求参数。

为数据API绑定独立域名

开放的API需要绑定独立域名,用户通过独立域名访问API。

  1. 调用“绑定域名”接口,为数据API绑定一个独立域名,并获取返回的域名编号。
    请求示例:
    POST /v2/{project_id}/apic/instances/{instance_id}/api-groups/{group_id}/domains
    
    {
       "url_domain" : "www.example.com"
    }

    其中加粗部分需要根据接口参数说明,替换为实际的数据值。{group_id}获取API分组ID中获取并保存的API分组ID。

    响应示例:

    {
       "url_domain" : "www.example.com",
       "id" : "c5e0d5ba********ae22c1a17",
       "status" : 3,
       "min_ssl_version" : "TLSv1.1"
    }

    响应消息中“id”的值即为域名编号,保存并留待后续步骤使用。

  2. (可选)若部署并发布数据API时配置了使用HTTPS协议,则需要调用“绑定域名证书”接口为独立域名添加SSL证书。
    请求示例:
    POST /v2/{project_id}/apic/instances/{instance_id}/api-groups/{group_id}/domains/{domain_id}/certificate
    
    {
       "name" : "cert_demo",
       "private_key" : "-----Start certificate----********-----End certificate-----",
       "cert_content" : "-----Start RSA private key----- ********-----End RSA private key-----"
    }

    其中加粗部分需要根据接口参数说明,替换为实际的数据值。{group_id}获取API分组ID中获取并保存的API分组ID,{domain_id}绑定独立域名时获取并保存的域名编号。

获取数据API的调用信息

调用“查询API详情”接口,查看并保存API的调用信息,包括API的请求协议、请求方式、请求路径、访问域名、请求参数和认证方式。

请求示例:

GET /v2/{project_id}/apic/instances/{instance_id}/apis/{api_id}

其中加粗部分需要根据接口参数说明,替换为实际的数据值。{api_id}部署并发布数据API中获取并保存的前端数据API编号。

响应示例:

{
   "name": "API_test",
   "type": 1,
   "version": "V1.0",
   "req_protocol": "HTTP",
   "req_method": "GET",
   "req_uri": "/api/demo",
   "auth_type": "APP",
    ...
   "domain_name": "www.example.com",
    ...
   "req_params": [],
    ...
}

响应消息中,“req_protocol”为请求协议,“req_method”为请求方式,“req_uri”为请求路径,“domain_name”为访问域名,“req_params”为请求参数信息,“auth_type”为认证方式。

把API调用信息提供给其他用户,其他用户通过调用数据API,获取开放的业务数据。不同的API认证方式,调用数据API的操作有所不同,具体请参考调用开放的API

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

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容