• 沒有找到結果。

3.2 API 管理

3.2.1 创建 API

操作场景

API提供者把API接口配置在API网关中,开放后端能力。

创建API主要分为四个步骤:设置基本信息、定义API请求、定义后端服务和定义返回 结果。

说明

API网关服务基于REST的API架构,API的开放和调用需要遵循RESTful相关规范。

前提条件

● 已创建API分组。如果未创建API分组,可在本操作页面中创建API分组。

● 如果后端服务需要使用VPC通道,请先创建VPC通道,或在本操作页面中创建VPC 通道。

设置基本信息

步骤2 在管理控制台左上角单击 ,选择区域。

步骤3 单击管理控制台左上角 ,然后单击“API网关 APIG”。

步骤4 在左侧选择您的API版本,单击并进入到对应版本的API开发与调用管理页面。

● “共享版”指直接创建并管理API,如涉及到费用,以API调用次数计费。

● “专享版”指在API专享版实例中创建并管理API,如涉及到费用,按实例运行时 间计费。

步骤5 单击“开放API > API管理”,进入到API列表信息页面。

步骤6 单击“新建API”,进入“新建API”页面。填写如表3-4所示信息。

3-2 基本信息

3-4 基本信息

信息项 描述

API名称 API名称,根据规划自定义。建议您按照一定的命名规则填写API名 称,方便您快速识别和查找。

所属分组 API所属分组。

如果尚未创建API分组,单击“新建分组”,为API新创建一个分 组。

网关响应 网关响应指API网关未能成功处理API请求,从而产生的错误响应。

API网关提供默认的网关响应(default)。如果您需要自定义响应 状态码或网关响应内容,可在API分组管理中新增网关响应,按照 您自己的响应内容,符合JSON格式即可。

信息项 描述

类型 API类型:

● 公开:选择“公开”类型时,API支持上架。

● 私有:选择“私有”类型时,当该API所在分组上架时,该API 不会上架。

安全认证 API认证方式:

● APP认证:表示由API网关服务负责接口请求的安全认证。

● 华为IAM认证:表示借助IAM服务进行安全认证。

● 自定义认证:用户有自己的认证系统或服务(如使用OAuth认 证),可选择“自定义认证”。

● 无认证:表示不需要认证。

各种认证方式下的API调用稍有不同,具体请参考《开发指南》。

推荐使用APP认证方式。

须知

● 认证方式为华为IAM认证时,任何API网关租户均可以访问此API,可能 存在恶意刷流量,导致过量计费的风险。

● 认证方式为无认证时,任何公网用户均可以访问此API,可能存在恶意刷 流量,导致过量计费的风险。

● 认证方式为自定义认证时,需要在函数工作流服务中写一段函数,对接 用户自己的认证系统或服务。如果当前Region没有上线函数工作流服 务,则不支持自定义认证。

支持简易认证 仅当“安全认证”选择“APP认证”时可配置。

简易认证指APP认证方式下调用API时,在HTTP请求头部消息增加 一个参数X-Apig-AppCode,而不需要对请求内容签名,API网关也 仅校验AppCode,不校验请求签名,从而实现快速响应。

注意仅支持HTTPS方式调用,不支持HTTP方式。具体使用请参考 为简易认证添加AppCode。

说明如果首次创建API未开启简易认证,那么之后开启简易认证,需要重新发布 API。请参考发布API发布。

自定义认证 “安全认证”选择“自定义认证”时需要配置。

自定义认证需要提前创建,可单击右侧的“新建自定义认证”链接 创建。

标签 标签主要用于对API添加分类属性,方便在创建了大量API后,快速 过滤和查找。

描述 API的描述。

步骤7 单击“下一步”,进入“定义API请求”页面。

----结束

定义 API 请求

步骤1 在“定义API请求”页面,填写如表3-5所示信息。

3-3 定义 API 请求

3-5 定义 API 请求

信息项 描述

域名 系统默认分配的一个子域名。

请求协议 分为三种类型:

● HTTP

● HTTPS

● HTTP&HTTPS

传输重要或敏感数据时推荐使用HTTPS。

请求Path 接口请求的路径。

格式如:/users/{userId}/projects

● {}中的变量为请求参数,表示匹配"/"之间的一整段,不支持匹 配"/"之间的一部分,例如/abc{userId}。若匹配模式为绝对匹 配,则尾部的请求参数可以添加+号,例如/users/{p+},其中变 量p匹配1或多段"/"之间的部分。

● 请求Path中包含请求参数时,必须设置对应的入参定义。

● 内容区分大小写。

信息项 描述

匹配模式 分为两种模式:

● 绝对匹配:调用的请求Path固定为创建时填写的API请求Path。

● 前缀匹配:调用的请求Path将以创建时填写的API请求Path为前 缀,支持接口定义多个不同Path。

例如,请求路径为/test/AA,使用前缀匹配时,通过/

test/AA/CC可以访问,但是通过/test/AACC无法访问。

说明

使用前缀匹配时,匹配剩余的路径将透传到后端。

例如,使用前缀匹配,前端请求路径定义为/test/,后端请求路径定义为/

test2/,通过/test/AA/CC访问API,则后端收到的请求url为/test2/AA/CC。

Method 接口调用方式:GET、POST、DELETE、PUT、PATCH、HEAD、

OPTIONS、ANY

● 其中ANY表示该API支持任意请求方法。

● 当“Method”为“POST”/“PUT”/“PATCH”/“ANY”

时,您可以在“请求体内容描述”中增加对于请求体的描述信 息。

支持CORS 是否开启跨域访问CORS(cross-origin resource sharing)。

CORS允许浏览器向跨域服务器,发出XMLHttpRequest请求,从 而克服了AJAX只能同源使用的限制。

CORS请求分为两类:

● 简单请求:头信息之中,增加一个Origin字段。

● 非简单请求:在正式通信之前,增加一次HTTP查询请求。

开启CORS(非简单请求)时,您需要单独创建一个“Method”为

“OPTIONS”的API,具体步骤请参见开启跨域访问。

步骤2 (可选)设置入参定义。

入参定义是指您调用API时,需要传入的参数的说明。

1. 单击“添加入参定义”,弹出“添加入参定义”对话框。

2. 输入如表3-6所示信息。

3-6 入参定义

信息项 描述

参数名 参数的名称,如果参数在“PATH”位置,那么参数名称需要和

“请求Path”中的名称相同。

说明

– 参数名不能是x-apig- 、x-sdk-开头,不区分大小写。

– 参数名不能是x-stage,不区分大小写。

参数位置为HEADER时,参数名不能是“Authorization”和“X-Auth-Token”,不区分大小写,也不支持下划线。

信息项 描述

参数位置 选择参数在请求中的位置。参数位置有如下三种:PATH、

HEADER、QUERY。

说明当您定义了PATH中的参数时,该参数需要在“请求Path”中同步定

义。

类型 字段的类型,包含String和Number。

说明入参如果为boolean,请选择String。

必填 请求API时,此参数是否为必填。如果选择“是”,API网关将 校验请求中是否包含此参数,如果不包含,则拒绝该请求。

透传 请求参数是否透传到后端服务。

默认值 “必填”为“否”时,默认值生效。请求中不包含此参数时,

API网关自动增加默认值发送给后端服务。

枚举 请求参数的枚举值,请求参数的值只能从枚举值中选择,多个 枚举值间用英文逗号隔开。

最小长度 参数值的最小长度,仅允许输入数字。

最大长度 参数值的最大长度,仅允许输入数字。

示例 参数值的填写示例。

描述 对于此参数的描述。

3. 单击“确定”,完成入参定义的设置。

步骤3 单击“下一步”,进入“定义后端服务”页面。

----结束

定义后端服务

API网关支持定义多个策略后端,即满足一定条件后转发给指定的API后端服务,用以 满足不同的调用场景。例如为了区分普通调用与特殊调用,可以定义一个“策略后 端”,通过调用方的源IP地址,为特殊调用方分配专用的后端服务。

除了定义一个默认的API后端服务,一个API共可以定义5个策略后端。

步骤1 定义默认后端。

添加策略后端前必须定义一个默认后端,当不满足任何一个策略后端的API请求,都将 转发到默认的API后端。

在“定义后端服务”页面,选择API后端服务类型。

后端服务类型参数描述见表3-7、表3-8、表3-9。

3-7 HTTP/HTTPS 类型定义后端服务 服务参数 参数说明

协议 HTTP或HTTPS,定义的后端服务协议须与用户的后端业务协议保 持一致。

说明

● 支持WebSocket通信。

● 传输重要或敏感数据时推荐使用HTTPS。

请求方式 接口调用方式,包括GET、POST、DELETE、PUT、PATCH、

HEAD、OPTIONS、ANY。

其中ANY表示该API支持任意请求方法。

使用VPC通道 是否使用VPC通道访问后端服务。

● 若使用VPC通道,选择已创建的VPC通道名称。

说明

– VPC通道中,云服务器的安全组必须允许100.125.0.0/16网段访问,

否则将导致健康检查失败及业务不通。

● 若不使用VPC通道,需要设置后端服务地址。

格式:“主机:端口”,主机为IP地址/域名,未指定端口时,

HTTP协议默认使用80端口,HTTPS协议默认使用443端口。

端口范围:1 ~ 65535。

如果需要创建变量标识,则填写“#变量名#”,如

#ipaddress#。支持创建多个变量标识,如

#ipaddress##test#。

自定义host头 域(可选)

仅当“使用VPC通道”选择“使用”时可配置。

在请求被发送到VPC通道中主机前,允许您自定义请求的Host头 域,默认将使用请求中原始的Host头域。

后端请求Path 后端服务的路径,即服务的uri,可以包含路径参数,以{路径参数}

形式表示,比如/getUserInfo/{userId}。

如果请求路径中含有环境变量,则使用#变量名#的方式将环境变 量定义到请求路径中,如/#path#。支持创建多个环境变量,如/

#path##request#。

后端超时 后端服务请求的超时时间。

如果在API调试过程中,遇到后端响应超时之类的错误,请适当调 大后端超时时间,以便排查原因。

说明

专享版可以在实例配置参数中修改超时时间上限,可修改范围为 1-600000ms。

双向认证 指HTTPS的双向认证,开启后,API网关将认证API后端服务。双向 认证所需的证书配置说明,请参考配置参数。

说明

仅专享版实例支持双向认证功能。

仅部分region支持双向认证功能。

服务参数 参数说明

后端认证 当您的后端服务需要对API调用增加自己的认证,则需要开启后端 认证。

后端认证需要先添加一个自定义认证,自定义认证通过函数工作流 服务实现,在函数工作流服务中编写一个函数,实现您的认证鉴权

后端认证需要先添加一个自定义认证,自定义认证通过函数工作流 服务实现,在函数工作流服务中编写一个函数,实现您的认证鉴权