配置示例
前提条件
- 已获取IAM和ROMA Connect服务所在区域的Endpoint地址。
- 已获取ROMA Connect实例的实例ID,以及实例所在区域的项目ID。
- 在调用ROMA Connect的接口时,需要为调用请求添加认证信息。有Token认证和AK/SK认证两种认证方式,您可以选择其中一种进行认证鉴权,具体操作请参见认证鉴权。推荐使用AK/SK认证,其安全性比Token认证要高。
获取集成应用ID
在ROMA Connect实例中创建的资源(如数据源、API等)都要归属到某个集成应用下,在创建资源前需要获取资源所归属的集成应用ID。
- 如果有可用的集成应用,则调用“查询应用列表”接口,获取集成应用ID。
其中加粗部分需要根据接口参数说明,替换为实际的数据值。
响应示例:
{ "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的后端服务。
- 调用“创建后端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编号,保存并留待后续步骤使用。
- 调用“创建后端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分组,则调用“查询分组列表”接口,获取分组ID。
其中加粗部分需要根据接口参数说明,替换为实际的数据值。
响应示例:
{ "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
- 调用“部署后端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的编号,保存并留待后续步骤使用。
- (可选)在发布数据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。
- 调用“绑定域名”接口,为数据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”的值即为域名编号,保存并留待后续步骤使用。
- (可选)若部署并发布数据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。