调用开放的API
概述
API在发布到环境后,即支持被其他用户调用。根据API所使用的安全认证方式不同,调用API的操作有所差异。
前提条件
在调用API前,确保您的业务系统所在网络与API的访问域名或地址互通。
获取API的调用信息
在调用API前,您需要向API提供方获取API的调用信息。
- 获取API的请求信息
在ROMA Connect实例控制台选择“服务集成 APIC > API管理”,在“API列表”页签中可获取API的“域名”、“请求方法”和“请求路径”。单击API的名称进入API详情页面,在“调用信息”页签下,获取API的“请求协议”、“入参定义”和“请求体内容描述”。
- 获取API的认证信息
根据API使用的安全认证方式不同,还要获取相关的请求认证信息:
认证方式
认证信息
APP认证(签名认证)
向API提供方获取该API所授权集成应用的Key和Secret(或客户端的AppKey和AppSecret),以及认证签名所使用的SDK。
APP认证(简易认证)
向API提供方获取该API所授权客户端的AppCode。
APP认证(绿色通道白名单)
向API提供方获取该API所授权集成应用的Key(或客户端的AppKey)。
APP认证(app_secret认证)
向API提供方获取该API所授权集成应用的Key和Secret(或客户端的AppKey和AppSecret)。
APP认证(app_basic认证)
向API提供方获取该API所授权集成应用的Key和Secret(或客户端的AppKey和AppSecret)。
APP认证(双重认证)
同时获取APP认证以及自定义认证所需的认证信息。
IAM认证(Token认证)
获取云服务平台的用户账号密码。
IAM认证(AK/SK认证)
获取云服务平台的用户账号的AK/SK,以及认证签名所使用的SDK。
IAM认证(双重认证)
同时获取IAM认证以及自定义认证所需的认证信息。
自定义认证
向API提供方获取请求参数中要携带的自定义认证信息。
无认证
无需认证信息。
- 获取集成应用的Key和Secret:
在ROMA Connect实例控制台选择“集成应用”,在集成应用列表中单击API所授权集成应用的名称,进入集成应用详情页面,在“基本信息”中获取集成应用的Key和Secret。
- 获取客户端的AppKey和AppSecret:
在ROMA Connect实例控制台选择“服务集成 APIC > API调用”,在“客户端配置”页签中单击API所绑定客户端的名称,进入客户端详情页面,获取客户端的AppKey和AppSecret。
- 获取认证签名所使用SDK:
在ROMA Connect实例控制台选择“服务集成 APIC > API调用”,在“SDK”页签中下载对应语言所使用SDK。
- 获取AppCode:
在ROMA Connect实例控制台选择“服务集成 APIC > API调用”,在“客户端配置”页签中单击API所绑定客户端的名称,进入客户端详情页面,在“AppCode”页签中获取AppCode。
- 获取集成应用的Key和Secret:
- 若您使用系统分配的默认子域名访问API,该子域名每天最多可以访问1000次。
- Site实例不支持使用子域名调用API,仅支持使用IP+Host头方式调用API。
调用API
- 构造API请求,示例如下:
POST https://{Address}/{Path}?{Query} {Header} { {Body} }
- POST:请求方法,需替换为获取API的请求信息中获取的请求方法。
- {Address}:请求地址,需替换为获取API的请求信息中获取的域名地址。您也可以使用IP地址访问API,
API调用场景
API请求参数配置
使用域名调用API
ROMA Connect允许使用分组分配的子域名或分组绑定的域名调用API,无需另外配置。
使用IP调用DEFAULT分组的API
ROMA Connect允许使用IP地址调用DEFAULT分组下的API,无需另外配置。
使用IP调用非DEFAULT分组的API
- ROMA Connect的实例配置参数“app_route”已设置为“on”,允许通过IP访问API。
- ROMA Connect不允许使用IP地址直接调用非DEFAULT分组下的API,需要在请求消息中添加Header参数“X-HW-ID”,参数值为API所授权集成应用的Key或客户端的AppKey。
- {Path}:请求路径,需替换为获取API的请求信息中获取的请求路径。
- {Query}:查询参数,可选,格式为“参数名=参数取值”,例如limit=10,多个查询参数之间使用“&”隔开。需根据获取API的请求信息中获取的请求参数进行设置。
- {Header}:请求头参数,格式为“参数名: 参数取值”,例如Content-Type: application/json。需根据获取API的请求信息中获取的请求参数进行设置。
- {Body}:请求消息体,JSON格式。需根据获取API的请求信息中获取的请求体内容描述进行设置。
- 为API请求添加认证信息。
API认证方式
API请求参数配置
APP认证(签名认证)
使用获取的SDK对API请求进行签名,具体请参考APP认证开发。
APP认证(简易认证)
在API请求中添加Header参数“X-Apig-AppCode”,参数值为获取API的认证信息中获取到的AppCode。
APP认证(绿色通道白名单)
在API请求中添加Header参数“X-HW-ID”,参数值为API所授权集成应用的Key或客户端的AppKey。
APP认证(app_secret认证)
- ROMA Connect的实例配置参数“app_secret”已设置为“on”,开启app_secret认证。
- 在API请求中添加Header参数“X-HW-ID”,参数值为API所授权集成应用的Key或客户端的AppKey。
- 在API请求中添加Header参数“X-HW-AppKey”,参数值为获取API的认证信息中获取到的Secret或AppSecret。
APP认证(app_basic认证)
- ROMA Connect的实例配置参数“app_basic”已设置为“on”,开启app_basic认证。
- 在API请求中添加Header参数“Authorization”,参数值为"Basic "+base64(appkey+":"+appsecret),其中appkey和appsecret分别为获取API的认证信息中获取到的Key和Secret(或AppKey和AppSecret)。
APP认证(双重认证)
在API请求中同时携带APP认证和自定义认证的认证信息。
IAM认证(Token认证)
先获取云服务平台的认证Token,然后在API请求中添加Header参数“X-Auth-Token”,参数值为认证Token,具体请参考IAM认证开发(Token)。
IAM认证(AK/SK认证)
使用获取的SDK对API请求进行签名,具体请参考IAM认证开发(AK/SK)。
IAM认证(双重认证)
在API请求中同时携带IAM认证和自定义认证的认证信息。
自定义认证
根据自定义认证的定义,在API请求参数中携带相关认证信息进行认证。
无认证
无需认证,可直接调用API。
Site实例中不支持华为IAM认证。