概述 #
创建 API 即在开发者后台完成对 API 相关定义的配置,主要包含设置 API 路由信息、设置上游服务、配置插件 3 个部分。
名词解释 #
路由(Route) #
路由即【匹配规则】,定义的是请求到达开放平台系统后如何转发、转发到哪。包含基本信息、匹配条件、请求改写、上游服务、插件。
在路由中,我们可以定义匹配条件——路径和方法,使用相应的方法请求 open.datastory.com.cn/api
下的对应路径时,请求就会到达开放平台系统,相当于入口;
可以对请求进行改写,改变其协议、域名、路径、方法和请求头参数,一般在此处配置真实的后端域名和路径;
可以配置上游服务,即定义请求转发到哪,配置上游节点、负载均衡算法、超时时间;
可以通过使用身份验证(authentication)、安全防护、流量控制等插件增强路由的能力。
上游服务(Upstream) #
上游服务即实际的【后端服务】,路由将把请求转发到上游服务中定义的节点(域名/IP + 端口),可配置负载均衡算法、超时时间等。
插件(Plugin) #
使用插件可扩展 API 路由能力,开发者后台目前提供身份验证、安全防护、流量控制、无服务架构、可观测性、格式转换六类插件。
插件详情请查阅:APISIX 插件文档
操作步骤 #
- 登录开发者后台
- 在左侧菜单栏中选择 API 路由
- 单击右侧 创建API路由,进行后续配置
配置说明 #
一、设置API路由信息 #
1. 基本信息
配置项 | 说明 | 是否必填 |
---|---|---|
名称 | API路由的名称,不唯一 | √ |
标签 | 必须为“key:value”的形式 | |
版本 | API路由的版本 | |
描述 | API路由的备注信息 |
2. 匹配条件
匹配条件即API路由的访问地址。
配置项 | 说明 | 是否必填 |
---|---|---|
域名 | API路由的域名,固定为 open.datastory.com.cn | |
路径 | API路由的请求路径 | √ |
HTTP方法 | API路由的HTTP方法,支持多选 |
3. 请求改写
请求改写即对初始的请求信息进行自定义改写,系统将改写后的请求信息代理至上游(后端)服务。
配置项 | 说明 | 是否必填 |
---|---|---|
协议 | 默认为保持原样,可改写为 HTTP,HTTPS | |
路径改写 | 默认为保持原样,可选择静态改写与正则改写。选择正则改写后将新增“匹配正则表达式”与“转发路径模板”两个配置项,系统根据正则表达式匹配uri后替换为转发路径模板 | |
域名改写 | 默认为保持原样,可选择静态改写 | |
HTTP方法改写 | 默认为不改写,单选 | |
请求头改写 | 默认为空,输入参数名称与对应的参数值以改写请求头参数 |
二、设置上游服务 #
上游服务即具体的后端服务,可以对上游服务的多个目标节点进行负载均衡和健康检查。
可在创建 API 路由的过程中手动填写上游服务相关配置,也可以选择已创建的上游服务。
配置项 | 说明 | 是否必填 |
---|---|---|
选择上游服务 | 默认为手动填写,可选择已创建的上游服务 | |
负载均衡算法 | 默认为带权轮询,可选择一致性哈希、指数加权移动平均法、最小连接数。选择一致性哈希需要配置哈希位置(Hash On)和 Key(Hash Key) | √ |
上游节点 | 包含主机名(域名或 IP )、端口、权重,可配置多个上游节点 | |
Host请求头 | 默认为保持与客户端请求一致的主机名,可选择使用目标节点列表中的主机名或IP | |
重试次数 | 重试机制将请求发到下一个上游节点。值为 0 表示禁用重试机制,留空表示使用可用后端节点的数量 | |
重试超时时间 | 限制是否继续重试的时间,若之前的请求和重试请求花费太多时间就不再继续重试。0 代表不启用重试超时机制 | |
协议 | 可选择HTTP或HTTPs | √ |
连接超时 | 建立从请求到上游服务器的连接的超时时间 | √ |
发送超时 | 发送数据到上游服务器的超时时间 | √ |
接收超时 | 从上游服务器接收数据的超时时间 | √ |
健康检查 | 默认关闭,开启后配置相关参数后,系统将主动请求上游服务节点进行健康检查 |
三、配置插件 #
使用插件可扩展 API 路由能力,开放平台后台目前提供身份验证、安全防护、流量控制、无服务架构、可观测性、格式转换六个模块的插件。
模块 | 插件 | 说明 |
---|---|---|
身份验证 | openid-connect,hmac-auth,ldap-auth,jwt-auth等 | 支持丰富的鉴权方式,目前默认使用 hmac 的方式,请在创建路由时开启 |
安全防护 | api-breaker,ip-restriction,consumer-restriction等 | 支持配置熔断策略,IP级别限制 |
流量控制 | limit-count,limit-conn,limit-req等 | 支持限制请求的请求速度、并发量、次数 |
无服务架构 | serverless-post-function,serverless-pre-function,aws-lambda等 | 支持各类函数及表达式 |
可观测性 | request-id,http-logger,syslog,skywalking-logger等 | 支持接入各类日志 |
格式转换 | thanos-response-rewrite,thanos-request-rewrite,proxy-rewrite,xdp-ecommerce-adapter等 | 支持进行请求改写、适配XDP格式等 |
详细插件配置说明请查阅APISIX插件文档
四、预览提交 #
对API路由完整信息集中预览后,提交即可成功创建。