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

通过APIG创建REST API

更新时间:2025-01-24 GMT+08:00

REST API(Representational State Transfer Application Programming Interface)是基于HTTP协议,通过对API的操作来实现客户端和服务器之间的通信,一种用于构建网络应用程序的软件架构风格。它广泛应用于Web开发、移动应用程序开发和云服务等领域,成为了现代应用程序开发的重要组成部分。

API的开放和调用需要遵循RESTful相关规范,创建REST API分以下步骤:

前提条件

配置API的前端信息

  1. 进入API网关控制台页面。
  2. 根据实际业务在左侧导航栏上方选择实例。
  1. 在左侧导航栏选择“API管理 > API分组”。
  2. 单击分组名称,进入“分组信息”页面。
  3. 在“API运行”页面,单击“创建API > 创建API”。

    1. 根据下表参数信息,配置前端定义。
      说明:

      创建API时,当API所属分组、请求方法、请求路径、匹配模式都重复时,API无法创建成功。

      表1 前端定义

      参数

      说明

      API名称

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

      支持中文、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号、中文格式下的顿号,且只能以英文、中文和数字开头,长度为3~255个字符。

      所属分组

      API所属的分组。选择已有的分组,如果需要新建分组,单击“新建分组”即可创建。

      URL

      前端地址由请求方法、请求协议、子域名和路径组成。

      • 请求方法:GET、POST、DELETE、PUT、PATCH、HEAD、OPTIONS、ANY。其中ANY表示该API支持任意请求方法。
      • 请求协议:HTTP、HTTPS、HTTP&HTTPS,传输重要或敏感数据时推荐使用HTTPS。

        API网关支持WebSocket数据传输,请求协议中的HTTP相当于WebSocket的ws,HTTPS相当于WebSocket的wss。

      • 子域名:所在分组的调试域名。
      • 路径:API的请求路径。请求路径可以包含请求参数,请求参数使用{}标识,例如/a/{b},也可以通过配置“+”号做前缀匹配,例如:/a/{b+}。注意,请求路径中的字母区分大小写。

      网关响应

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

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

      匹配模式

      选择API请求路径的匹配模式。

      • 绝对匹配:API请求中的请求路径要与“路径”的配置一致。
      • 前缀匹配:API请求中的请求路径要以“路径”的配置为前缀。前缀匹配支持接口定义多个不同Path。

        例如,“路径”为/test/AA,使用前缀匹配时,通过/test/AA/BB和/test/AA/CC都可以访问API,但是通过/test/AACC无法访问。

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

        例如,使用前缀匹配,前端请求路径定义为/test/,后端请求路径定义为/test2/,通过/test/AA/CC访问API,则后端收到的请求url为/test2/AA/CC。

      • 使用前缀匹配时,以最长路径优先规则匹配。

        例如,两个API都开启前缀匹配,“路径”为/test/AA和/test/AA/BB,请求/test/AA/BB/c会匹配路径为/test/AA/BB的API。

      • 当两个API的所属分组、请求方法、请求路径都相同时,优先调用匹配模式为绝对匹配的API。

      标签

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

      支持英文,数字,中文,_-*#%.:,且只能以英文,中文开头,长度为1~128个字符。支持输入多个标签,不同标签以英文逗号分隔。

      描述

      API的描述。长度为1~1000个字符。

      内容格式类型

      是否开启API请求的内容格式类型,开启后APIG会按照选择的内容格式类型向后端传输API请求。长度为1~20480个字符。

      支持选择“application/json”、“application/xml”、“text/plain”和“multipart/form-data”。选择内容格式类型前,请确保后端服务支持待选择的内容格式类型。

      请求体内容描述

      填写API请求中请求体的描述信息,用于帮助API调用者理解如何正确封装API请求。

      请求体Base64编码

      对与FunctionGraph交互场景的Body体进行Base64编码,默认开启。仅当满足以下任意条件时,Base64编码才生效:

      • 自定义认证
      • 后端配置为FunctionGraph类型
      • 绑定断路器策略,且断路器后端降级策略FunctionGraph类型

      如需关闭Base64编码,仅当内容格式类型为“application/json”时才可关闭。

    2. 根据下表参数信息,配置安全配置。
      表2 安全配置

      参数

      说明

      类型

      API类型:

      • 公开:选择“公开”类型时,API支持上架。
      • 私有:选择“私有”类型时,当该API所在分组上架时,该API不会上架。

      安全认证

      API认证方式:

      • APP认证:表示由API网关服务负责接口请求的安全认证。推荐使用APP认证方式。
      • 华为IAM认证:表示借助IAM服务进行安全认证。
      • 自定义认证:用户有自己的认证系统或服务(如使用OAuth认证),可选择“自定义认证”。
      • 无认证:表示不需要认证。API网关对收到的调用请求不做身份认证,只需要按照API提供者提供的接口说明,封装规范的请求,发送给API网关即可。

        API网关把请求内容透传给后端服务。因此,如果您希望在API后端服务进行鉴权,可以使用“无认证”方式,API调用方传递鉴权所需字段给后端服务,由后端服务进行鉴权。

      各种认证方式下的API调用稍有不同,具体请参考调用APIG开放的API

      须知:
      • 认证方式为华为IAM认证时,任何API网关租户均可以访问此API,可能存在恶意刷流量,导致过量计费的风险。
      • 认证方式为无认证时,任何公网用户均可以访问此API,可能存在恶意刷流量,导致过量计费的风险。
      • 认证方式为自定义认证时,需要在函数服务中写一段函数,对接用户自己的认证系统或服务。如果当前Region没有上线函数工作流服务,则不支持自定义认证。

      支持简易认证

      仅当“安全认证”选择“APP认证”时可配置

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

      注意支持HTTPS方式调用,不支持HTTP方式。具体使用请参考配置APIG的API简易认证AppCode

      说明:

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

      支持双重认证

      仅当“安全认证”选择“APP认证”或“华为IAM认证”时可配置

      是否对API的调用进行双重安全认证。如果选择启用,则在使用APP认证或IAM认证对API请求进行安全认证时,同时使用自定义的函数API对API请求进行安全认证。

      自定义认证

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

      选择已创建的前端类型自定义认证。若没有可用的自定义认证,可单击右侧的“新建自定义认证”,创建一个前端类型的自定义认证。

      支持跨域CORS

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

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

      CORS请求分为两类:

      • 简单请求:头信息之中,增加一个Origin字段。
      • 非简单请求:在正式通信之前,增加一次HTTP查询请求。

      开启CORS(非简单请求)时,您需要单独创建一个“请求方法”为“OPTIONS”的API,具体操作请参考开启跨域访问

    3. (可选)根据实际需要定义API的请求参数,请求参数定义见下表。
      说明:

      建议不要设置敏感信息,防止泄露。

      表3 请求参数

      参数

      说明

      参数名

      参数的名称,如果参数在“Path”位置,参数名称会同步“路径”中的名称。

      支持英文,数字,点,中划线,下划线,且只能以英文开头,长度为1-32个字符。

      • 参数名不能以x-apig- 、x-sdk-开头,不能是x-stage,不区分大小写。
      • 参数位置为HEADER时,API认证为IAM认证的API的参数名不能是“Authorization”和“X-Auth-Token”,API认证为APP认证的API的参数名不能是“Authorization”。不区分大小写。

      参数类型

      字段的类型,包含STRING和NUMBER。入参如果为boolean,请选择STRING。

      必填

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

      透传

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

      枚举

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

      默认值

      “必填”为“否”时,默认值生效。请求中不包含此参数时,API网关自动增加默认值发送给后端服务。

      编排规则

      选择编排规则。创建编排规则请参考配置API的参数编排规则

      字节限制

      • 最大长度/最大值:“类型”为“STRING”时,设置参数值的最大字符串长度,“类型”为“NUMBER”时,设置参数值的最大值。
      • 最小长度/最小值:“类型”为“STRING”时,设置参数值的最小字符串长度,“类型”为“NUMBER”时,设置参数值的最小值。

      示例

      参数值的填写示例。

      描述

      对于此参数的描述。

  4. 单击“下一步”,进入配置API的后端信息

配置API的后端信息

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

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

  1. 定义默认后端。

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

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

    后端服务类型有HTTP&HTTPS、FunctionGraph和Mock,具体参数描述见表4表5表6

    说明:
    • FunctionGraph依赖于函数工作流服务FunctionGraph,如果当前环境中未部署FunctionGraph服务,则后端服务类型FunctionGraph不可用。
    • 在后端服务还不具备的场景下,可以使用Mock模式,将预期结果固定返回给API调用方,方便调用方进行调试验证。
    表4 HTTP&HTTPS类型定义后端服务

    参数

    说明

    负载通道

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

    URL

    URL地址由请求方法、请求协议、负载通道/后端服务地址和路径组成。

    • 请求方法

      GET、POST、DELETE、PUT、PATCH、HEAD、OPTIONS、ANY,其中ANY表示该API支持任意请求方法。

    • 请求协议

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

      • API网关支持WebSocket数据传输,请求协议中的HTTP相当于WebSocket的ws,HTTPS相当于WebSocket的wss。
      • 定义的后端服务协议须与用户的后端业务协议保持一致。
    • 负载通道

      仅在使用负载通道时,需要设置。选择已创建的负载通道名称,或者新建负载通道

      负载通道中,云服务器的安全组必须允许100.125.0.0/16网段访问,否则将导致健康检查失败及业务不通。

    • 后端服务地址

      仅在不使用负载通道时,需要设置

      填写后端服务的访问地址,格式:“主机:端口”。主机为后端服务的访问IP地址/域名;端口为后端服务的端口。未指定端口时,HTTP协议默认使用80端口,HTTPS协议默认使用443端口。

      如果后端服务地址中需要携带环境变量,则使用“#变量名#”的形式将环境变量添加到后端服务地址中,如#ipaddress#。支持添加多个环境变量,如#ipaddress##test#。

      说明:

      IP地址/域名可以是公网IP(支持云服务器的弹性IP地址、用户自己服务器的公网IP地址、ELB地址)/公网域名,前提需要开启实例的公网出口。可以是内网的IP,不可以是内网域名。

      2022年10月30日后创建的实例支持APIG与后端服务tls握手阶段向后端服务传SNI。

    • 路径

      后端服务的路径,即服务的uri,可以包含路径参数,以{路径参数}形式表示,比如/getUserInfo/{userId}。

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

    说明:
    • 在URL中配置了变量标识后,在API调试页面将无法调试。
    • 如果在URL中设置变量,那么必须在待发布环境上配置变量名和变量值,否则变量无法赋值,API将无法正常调用。
    • 变量名严格区分大小写。

    自定义host头域

    仅在使用负载通道时,可设置

    自定义后端服务请求中的Host头域,默认使用请求中原始的host头域。

    后端超时(ms)

    后端服务请求的超时时间,可填写范围1ms~60000ms。

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

    说明:

    如果当前的超时时间范围不能满足实际业务需求,请在实例配置参数中修改超时时间上限,可修改范围为1ms~600000ms。如果您修改了超时时间上限,需要同步修改此处的超时时间。

    重试次数

    后端服务请求失败后的重试次数,默认值为0,取值范围-1~10。

    • 值为-1时,表示不开启重试功能,但除POST和PATCH外的其他请求类型会默认重试1次。
    • 值为0~10时,表示开启重试功能,并根据设置的值执行重试。当值为0时,不重试。

    使用负载通道时,重试次数应小于负载通道中已启用的后端服务器个数。

    TLS双向认证

    仅在协议为“HTTPS”时,可设置。

    选择是否在API网关和后端服务间启用双向认证,如果选择“使用backend_client_certificate配置的证书做客户端认证”,您需在实例的配置参数中提前配backend_client_certificate证书。

    后端认证

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

    后端认证需要先添加一个自定义认证,自定义认证通过函数服务实现,在函数服务中编写一个函数,实现您的认证鉴权流程,或者使用函数调用您的统一鉴权服务。

    说明:

    后端认证依赖函数服务,此功能仅在部分区域开放。

    表5 FunctionGraph类型定义后端服务

    参数

    说明

    函数名

    添加函数后,函数名自动生成。

    函数URN

    函数请求唯一标识。

    单击“添加”,添加所需的函数URN。

    版本或别名

    选择函数的版本或别名,函数的版本或别名功能请参考版本管理章节或别名管理章节。

    调用类型

    选择函数的调用类型。

    • Synchronous:同步调用。指后端函数服务收到调用请求后立即执行并返回调用结果,客户端发送请求后同步等待,收到后端响应后关闭连接。
    • Asynchronous:异步调用。客户端不关注请求调用的结果,服务端收到请求后将请求排队,排队成功后请求就返回,服务端在空闲的情况下会逐个处理排队的请求。

    后端超时(ms)

    后端服务请求的超时时间,可填写范围1ms~60000ms。

    • 如果在API调试过程中,遇到后端响应超时之类的错误,请适当调大后端超时时间,以便排查原因。
    • 如果当前的超时时间范围不能满足实际业务需求,请在实例配置参数中修改超时时间上限,可修改范围为1ms~600000ms。如果您修改了超时时间上限,需要同步修改此处的超时时间。

    后端认证

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

    后端认证需要先添加一个自定义认证,自定义认证通过函数服务实现,在函数服务中编写一个函数,实现您的认证鉴权流程,或者使用函数调用您的统一鉴权服务。

    说明:

    后端认证依赖函数服务,此功能仅在部分区域开放。

    表6 Mock类型定义后端服务

    参数

    说明

    Mock自定义返回码

    选择API响应的HTTP状态码。

    Mock返回结果

    Mock一般用于开发调试验证。在项目初始阶段,后端服务没有搭建好API联调环境,可以使用Mock模式,将预期结果固定返回给API调用方,方便调用方进行项目开发。

    后端认证

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

    后端认证需要先添加一个自定义认证,自定义认证通过函数服务实现,在函数服务中编写一个函数,实现您的认证鉴权流程,或者使用函数调用您的统一鉴权服务。

    说明:

    后端认证依赖函数服务,此功能仅在部分区域开放。

    添加header参数

    自定义API响应的header参数。

    单击“添加header参数”,并填写参数名、参数值和参数描述。

  2. (可选)配置默认后端的后端服务参数,将调用API时传入的请求参数映射到后端服务请求的对应位置。如果5.c中未定义请求参数,可直接跳过此步骤。

    1. 在“后端服务参数”下,可通过以下任意一种方法添加后端服务参数。
      • 单击“导入入参定义”,把所有已定义的API请求参数添加到后端服务参数。
      • 单击“添加后端参数映射”,按需逐个添加后端服务参数。
    2. 根据后端服务实际的参数名称和参数位置修改映射关系,如图1所示。
      图1 配置后端服务参数
      1. 后端参数在“PATH”位置,那么参数名称需要和“路径”中的名称相同。
      2. 调用API的请求参数名称、位置可以与后端参数名称、位置不同。
        说明:
        • 参数名不能是x-apig- 、x-sdk-开头,不区分大小写。
        • 参数名不能是x-stage,不区分大小写。
        • 参数位置为HEADER时,参数名不区分大小写,也不支持下划线开头。
      3. 如上图,test01和test03在调用API时分别配置于PATH和QUERY位置,后端服务通过映射,将在HEADER位置接收test01和test03的值。test02在调用API时配置于HEADER位置,后端服务通过映射,将在PATH位置以参数名test05来接收test02的值。

        假设test01为aaa,test02为bbb,test03为ccc。

        API调用请求:

        curl -ik -H 'test02:bbb' -X GET https://example.com/v1.0/aaa?test03=ccc

        后端服务请求:

        curl -ik -H 'test01:aaa' -H 'test03:ccc' -X GET https://example.com/v1.0/bbb

  3. (可选)配置默认后端的常量参数。如果后端服务需要接收固定的常量信息,可以通过设置常量参数来实现。API网关向后端服务发送请求时,将常量参数添加到请求的指定位置,然后将请求发送给后端服务。

    在“常量参数”下,单击“添加常量参数”,添加后端服务请求的常量参数。

    须知:

    常量参数会明文展示,为防止信息泄露,请谨慎配置。

    表7 常量参数配置

    参数

    说明

    常量参数名

    填写常量参数的名称。“参数位置”为“PATH”时,参数名需要与“路径”中的参数名称一致。

    说明:
    • 参数名不能以x-apig- 、x-sdk-开头,不能是x-stage,不区分大小写。
    • 参数位置为HEADER时,参数名不支持下划线开头,不区分大小写。

    参数位置

    选择常量参数在后端服务请求中的位置,可选择“PATH”、“HEADER”和“QUERY”。

    参数值

    填写常量参数的值。

    描述

    填写常量参数的描述信息。

    说明:
    • API网关将包含常量参数的请求发送给后端服务前,会对特殊参数值进行百分号编码,请确保后端服务支持百分号编码。例如,参数值[api],在百分号编码后变为%5Bapi%5D。
    • 对于PATH位置的参数值,API网关会对如下字符进行百分号编码:ASCII码为0到31的字符、?、>、<、/、%、#、"、[、\、]、^、`、{、|、}、空白符、ASCII码为127到255的字符。
    • 对于QUERY位置的参数值,API网关会对如下字符进行百分号编码:ASCII码为0到31的字符、>、=、<、+、&、%、#、"、[、\、]、^、`、{、|、}、空白符、ASCII码为127到255的字符。

  4. (可选)配置默认后端的系统参数。如果后端服务需要接收系统运行时产生的参数信息,如网关内置参数、前端认证参数和后端认证参数等,可以通过设置系统参数来实现。API网关向后端服务发送请求时,将系统参数添加到请求的指定位置,然后将请求发送给后端服务。

    1. 在“系统参数”下,单击“添加系统参数”,根据下表参数说明,添加后端服务请求的系统参数。
      表8 系统参数配置

      参数

      说明

      系统参数类型

      选择系统参数的类型。

      • 网关内置参数:支持配置的系统参数。
      • 前端认证参数:前端自定义认证返回结果中的参数。在配置API的前端信息中,“安全认证”选择“自定义认证”或使用双重认证时,才可以选择此参数。
      • 后端认证参数:后端自定义认证返回结果中的参数。在配置API的后端信息中,“后端认证”开启时,才可以选择此参数。

      系统参数名

      填写系统参数的名称。

      • “系统参数类型”为“网关内置参数”时,支持选择如下参数:
        • sourceIp:API调用者的源地址。
        • stage:API调用的部署环境。
        • apiId:API的ID。
        • appId:API调用者的APP ID。
        • requestId:当次调用API所生成的请求ID。
        • serverAddr:网关服务器的地址 。
        • serverName:网关服务器的名称。
        • handleTime:本次调用API的处理时间。
        • providerAppId:API提供者的凭据ID。
        • apiName:API的名称,需要发布API后才可使用此参数。
        • appName:调用API所使用的凭据名称。
        • clientCertCN:开启客户端认证时,API请求携带的客户端证书中的CN(Common Name)字段。
      • 系统参数类型为“前端认证参数”或“后端认证参数”时,支持自定义参数,但是此参数必须为自定义认证返回结果中的参数。

      自定义认证函数的编写以及返回结果参数的获取方法,请参考创建用于前端自定义认证的函数

      后端参数名称

      填写系统参数需要映射的后端参数名称。

      说明:
      • 参数名不能以x-apig- 、x-sdk-开头,不能是x-stage,不区分大小写。
      • 参数位置为HEADER时,参数名不支持下划线开头,不区分大小写。

      后端参数位置

      选择后端参数在后端服务请求中的位置,可选择“PATH”、“HEADER”和“QUERY”。

      描述

      填写系统参数的描述信息。

  5. (可选)添加策略后端。

    添加多个后端策略后,通过不同的策略条件,请求被转发到不同的后端服务中。

    1. 单击添加策略后端。
    2. 后端策略增加的参数,具体如表9所示,其他参数说明参考表4表5表6
      表9 后端策略参数

      参数

      说明

      后端策略名称

      您自定义的名称,用于识别不同的后端策略。

      支持英文、数字、下划线和中划线,只能以英文字母开头,长度为3~64个字符。

      生效方式

      选择策略后端的生效方式。

      • 满足任一条件:只要满足策略条件中的任意一项,此后端策略就可以生效。
      • 满足全部条件:只有满足所有的策略条件,此后端策略才生效。

      策略条件

      添加后端策略生效的条件,具体如表10所示。

      表10 策略条件

      参数

      说明

      条件来源

      策略条件中判断条件的来源。

      • 源地址:以访问API的请求地址作为策略条件。
      • 请求入参:以请求入参参数作为策略条件。
      • Cookie:以API请求的Cookie信息作为判断条件。
      • 系统参数-网关内置参数:以网关内置参数作为策略条件。网关内置参数指API网关处理API请求时的系统运行时参数信息。
      • 系统参数-前端认证参数:以前端自定义认证返回结果中的参数作为策略条件。在配置API的前端信息中,“安全认证”选择“自定义认证”或使用双重认证时,才可以选择此参数。
      须知:
      • 选择“请求入参”作为策略条件时,入参需要在API前端请求中配置好,如在Header中添加一个参数。
      • 如果未展示“系统参数”请联系技术支持升级实例。

      参数名称

      • 当“条件来源”为“请求入参”时,需要设置。选择已创建的入参参数名称。
      • 当“条件来源”为“系统参数”时,需要选择参数名称。
        • reqPath:请求URI,如“/a/b/c”。
        • reqMethod:请求方法,如“GET”。
      • 当“条件来源”为“COOKIE”时,需要填写Cookie中的参数名称。支持英文、数字、点、下划线和中划线,长度为1-255个字符。

      参数位置

      仅在“条件来源”为“请求入参”时,展示请求入参的参数位置。

      条件类型

      选择条件的判断类型,仅在“条件来源”为“请求入参”、“系统参数”、“COOKIE”时需要配置。

      • 相等:请求参数值必须为输入值时,条件成立。
      • 枚举:请求参数值只需要和枚举值中任何一个值相同,条件成立。
      • 匹配:请求参数值只需要和正则表达式中任何一个值相同,条件成立。
      说明:

      当“条件来源”为“系统参数”并且“参数名称”为“reqMethod”时,“条件类型”仅支持选择相等或枚举。

      条件值

      填写判断条件的值,长度为1~1024个字符。

      • “条件类型”为“相等”时,输入一个值。
      • “条件类型”为“枚举”时,输入多个值,以英文逗号隔开。
      • “条件类型”为“匹配”时,输入一个范围,例如:[0-5]。
      • “条件来源”为“源地址”时,输入一个或多个IP地址,以英文逗号隔开。
      • “条件来源”为“系统参数-前端认证参数”时,且当条件值填写boolean类型时,需全部小写。

  6. 定义返回结果。

    在“返回结果基础定义”区域,根据下表参数说明,填写返回信息。
    表11 定义返回结果

    参数

    说明

    成功响应示例

    成功调用API时,返回的响应信息示例。

    失败响应示例

    调用API失败时,返回的响应信息示例。

  7. 单击“完成”,进入“API运行”页面,可查看API详情。

后续操作

API创建完成后,通过调试API,验证服务是否正常。

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

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容