创建API服务
ROMA API提供了API服务能力,通过API服务把后端服务封装成标准RESTful格式API,并开放给其他用户使用。
目前支持三种创建服务方式:
- 创建API服务
创建一个简单的服务,不包含API,用户可自行创建API。
- 导入API设计文件
支持从“API设计”中导入设计文件,同步创建服务。
- 导入Swagger文件
从本地导入已有的API设计文件,同步创建服务。
创建API服务
- 登录ROMA API控制台。
- 在控制台单击,选择区域,在“ROMA API”下选择待操作的应用。
- 在左侧导航栏选择“API管理 > API服务”。
- 在当前应用关联的实例中,根据实际业务选择实例。
- 单击页面右上角的“创建API服务 > 创建API服务”。
- 在弹框中填写服务信息。
图1 填写服务信息
- 单击“确定”创建完成。
创建服务成功后,用户可新建API,具体操作请参考创建API。
导入API设计文件
- 登录ROMA API控制台。
- 在控制台单击,选择区域,在“ROMA API”下选择待操作的应用。
- 在左侧导航栏选择“API管理 > API服务”。
- 在当前应用关联的实例中,根据实际业务选择实例。
- 单击页面右上角的“创建API服务 > 导入API设计文件”。
- 在弹窗中选择要开放API所在的设计文件,单击“确定”。
- 系统根据默认API导入规则检测API文件。
- 如需修复问题,单击“修复问题”根据修改建议修改问题。
- 如忽略问题,单击“继续导入”。
- 填写服务名称,或默认系统自动生成的名称。
- 在“API接口”列表中勾选要开放的API,单击“立即导入”。
- (可选)单击“全局配置(可选)”。
- 安全配置。
表1 安全配置参数说明 参数
参数说明
安全认证
API使用的认证方式,推荐使用APP认证。
- APP认证:表示由ROMA API进行API请求的安全认证。
- 华为IAM认证:表示通过IAM服务进行安全认证。
- 自定义认证:表示使用自定义的后端函数API进行安全认证。
- 无认证:表示不需要认证。
须知:- 使用IAM认证方式时,任何租户均可以访问此API,会存在恶意刷流量,导致过量计费的风险。
- 使用无认证方式时,任何公网用户均可以访问此API,会存在恶意刷流量,导致过量计费的风险。
支持简易认证
简易认证指APP认证方式下调用API时,在HTTP请求头部消息增加一个参数X-Apig-AppCode,而不需要对请求内容签名,ROMA API也仅校验AppCode,不校验请求签名,从而实现快速响应。
注意仅支持HTTPS方式调用,不支持HTTP方式。具体使用请参考管理应用。
说明:如果首次创建API未开启简易认证,那么之后开启简易认证,需要重新发布API。请参考发布API发布。
支持双重认证
仅当“后端认证”选择“APP认证”或“华为IAM认证”时可配置。
是否对API的调用进行双重安全认证。若选择启用,则在使用APP认证或IAM认证对API请求进行安全认证时,同时使用自定义的函数API对API请求进行安全认证。
自定义认证
仅当“后端认证”选择“自定义认证”时可配置。
需要先创建自定义认证,自定义认证通过函数服务实现,在函数服务中编写一个函数,实现您的认证鉴权流程,或者使用函数调用您的统一鉴权服务。
说明:后端认证依赖函数服务,此功能仅在部分区域开放。
支持跨域CORS
配置API是否支持跨域访问CORS。
CORS请求分为两类:
- 简单请求:头信息之中,增加一个Origin字段。
- 非简单请求:在正式通信之前,增加一次HTTP查询请求。
开启CORS(非简单请求)时,您需要单独创建一个“Method”为“OPTIONS”的API,具体操作请参考开启跨域访问。
- 后端请求配置。
FunctionGraph类型依赖于函数工作流服务FunctionGraph,若当前环境中未部署FunctionGraph服务,则后端服务类型FunctionGraph不可用。
表2 HTTP&HTTPS类型定义后端服务 服务参数
参数说明
负载通道
是否使用负载通道。
负载通道可允许后端直接访问ECS上面的实例地址。
URL
URL地址由请求方法、请求协议、负载通道/后端服务地址和路径组成。
- 请求方法
GET、POST、DELETE、PUT、PATCH、HEAD、OPTIONS、ANY,其中ANY表示该API支持任意请求方法。
- 请求协议
HTTP或HTTPS,传输重要或敏感数据时推荐使用HTTPS。
说明:支持WebSocket通信。
- 负载通道(可选)
说明:
VPC通道中,云服务器的安全组必须允许100.125.0.0/16网段访问,否则将导致健康检查失败及业务不通。
- 后端服务地址(可选)
格式:“主机:端口”,主机为IP地址/域名,未指定端口时,HTTP协议默认使用80端口,HTTPS协议默认使用443端口。
端口范围:1 ~ 65535。
如果需要创建变量标识,则填写“#变量名#”,如#ipaddress#。支持创建多个变量标识,如#ipaddress##test#。
- 路径
后端服务的路径,即服务的uri,可以包含路径参数,以{路径参数}形式表示,比如/getUserInfo/{userId}。
如果请求路径中含有环境变量,则使用#变量名#的方式将环境变量定义到请求路径中,如/#path#。支持创建多个环境变量,如/#path##request#。
自定义host头域
仅在使用负载通道时,可设置。
在请求被发送到负载通道中主机前,允许您自定义请求的Host头域,默认将使用请求中原始的Host头域。
后端超时
请求超时时间,1 ~ 60000ms。
如果在API调试过程中,遇到后端响应超时之类的错误,请适当调大后端超时时间,以便排查原因。
TLS双向认证
是否选择“使用backend_client_certificate配置的证书做客户端认证”,若选择,您需在实例详情的“配置参数”页签中提前配backend_client_certificate证书。
后端认证
当您的后端服务需要对API调用增加自己的认证,则需要开启后端认证。
后端认证需要先添加一个自定义认证,自定义认证通过函数服务实现,在函数服务中编写一个函数,实现您的认证鉴权流程,或者使用函数调用您的统一鉴权服务。
说明:后端认证依赖函数服务,此功能仅在部分区域开放。
表3 FunctionGraph类型定义后端服务 服务参数
参数说明
函数名
函数名称。选择函数后,自动生成。
函数URN
函数请求唯一标识。
单击“添加”,添加所需的functionURN。
版本
函数的版本。
调用类型
- Synchronous:同步调用。指后端函数服务收到调用请求后立即执行并返回调用结果,客户端发送请求后同步等待,收到后端响应后关闭连接。
- Asynchronous:异步调用。客户端不关注请求调用的结果,服务端收到请求后将请求排队,排队成功后请求就返回,服务端在空闲的情况下会逐个处理排队的请求。
后端超时
请求超时时间,1 ~ 60000ms。
后端认证
当您的后端服务需要对API调用增加自己的认证,则需要开启后端认证。
后端认证需要先添加一个自定义认证,自定义认证通过函数服务实现,在函数服务中编写一个函数,实现您的认证鉴权流程,或者使用函数调用您的统一鉴权服务。
说明:后端认证依赖函数服务,此功能仅在部分区域开放。
表4 Mock类型定义后端服务 服务参数
参数说明
Mock返回结果
Mock一般用于开发调试验证。在应用初始阶段,后端服务没有搭建好API联调环境,可以使用Mock模式,将预期结果固定返回给API调用方,方便调用方进行应用开发。
后端认证
当您的后端服务需要对API调用增加自己的认证,则需要开启后端认证。
后端认证需要先添加一个自定义认证,自定义认证通过函数服务实现,在函数服务中编写一个函数,实现您的认证鉴权流程,或者使用函数调用您的统一鉴权服务。
说明:后端认证依赖函数服务,此功能仅在部分区域开放。
- 请求方法
- 单击“完成”,完成配置。
- 安全配置。
- 在弹窗中选择是否现在发布API到环境。
- 若选择“现在发布”,还需要选择API要发布的环境,将API服务下的所有API发布到环境上。
- 若选择“稍后发布”,请参考发布API发布。
- 单击“确定”,跳转到“API运行”页面,可查看服务下的API。
导入Swagger文件
- 登录ROMA API控制台。
- 在控制台单击,选择区域,在“ROMA API”下选择待操作的应用。
- 在左侧导航栏选择“API管理 > API服务”。
- 在当前应用关联的实例中,根据实际业务选择实例。
- 单击页面右上角的“创建API服务 > 导入Swagger文件”。
- 在弹窗中选择本地路径下的API设计文件,然后单击“打开”导入文件。
导入的YAML或JSON格式文件大小不能超过3MB,否则将无法导入API服务。
- 在页面中修改服务名称,或默认系统自动生成的服务名称。
- 在“API接口”列表勾选需要导入的API,单击“立即导入”。
- (可选)单击“全局配置(可选)”,请参考全局配置。
- 在弹窗中选择是否现在发布API到环境。
- 若选择“现在发布”,还需要选择API要发布的环境,将API服务下的所有API发布到环境上。
- 若选择“稍后发布”,请参考发布API发布。
- 单击“确定”,跳转到“API运行”页面,可查看服务下的API。