跳到主要内容
版本:1.1-beta

路由

路由是指API网关根据客户端请求的特定路径或条件,将请求转发到相应的后端服务的过程。API网关是一个位于客户端和服务器之间的中间层,用于管理、监控和路由客户端的API请求。它的路由功能是API网关的核心功能之一。

在API网关中,路由通常是基于URL路径、HTTP方法(如GET、POST等)、请求头、查询参数等多种条件进行的。当API网关收到客户端的请求时,会根据预先配置的路由规则,决定将请求转发到哪个后端服务。

路由匹配规则

APIPark的路由可配置多种指标,包括请求协议、请求方式、请求路径、请求Header、Query参数。

匹配优先级为:请求协议 > 请求方式 > 请求路径 > 请求Header > Query参数

请求协议、请求方式在配置时可多选,如下图:

请求路径匹配规则

匹配类型规则说明
全等匹配str值存在,且与str完全相等
前缀匹配str*值存在,且str是值的前缀,当前模式下,网关会将str后方的路径拼接到转发路径中。

全等匹配示例

  • 请求路径:/shop/user/info
  • 转发路径:/user/info

此时请求路径如下:

POST /shop/user/info

网关将会请求上游服务的路径如下:

POST /user/info

若请求路径非/shop/user/info,则无法匹配该路由。

前缀匹配示例

  • 请求路径:/shop/user/*
  • 转发路径:/user/

此时请求的路径和实际转发到上游服务的路径关系如下:

POST /shop/user/info    ->   POST /user/info
POST /shop/user/phone -> POST /user/phone
POST /shop/user/order -> POST /user/order

请求头、Query参数值匹配规则

匹配类型规则说明
全等匹配str值存在,且与str完全相等
前缀匹配str*值存在,且str是值的前缀
后缀匹配*str值存在,且str是值的后缀
子串匹配str值存在,且str是值的子串
非等匹配!=str值存在,且值不等于str时匹配成功
空值匹配$要求key存在且值为空值,多用于header、query指标
存在匹配**要求key存在但不能为空值,多用于header、query指标
不存在匹配!要求key不存在,多用于header、query指标
区分大小写的正则匹配~=str值符合正则匹配
不区分大小写的正则匹配~*=str值符合正则匹配
任意匹配*任何情况都匹配成功

操作演示

添加路由

  1. 选择需要配置的服务,进入服务内页。

  1. 点击 "路由"

  1. 点击 "添加路由"

  1. 填写路由的基本信息

字段描述

字段名称字段描述
拦截该接口的请求是否拦截该接口的请求
请求方式支持常见HTTP请求方式GET、POST、PUT、DELETE等,支持多选
请求路径API的URI,用于应用请求URL中的相对路径,支持Restful参数以及路径前缀匹配
高级匹配支持通过请求头,请求参数、Cookie 进行路由匹配,可添加多条
转发上游路径转发至上游的相对路径
请求超时时间定义网关转发请求到上游至响应的超时时间
重试次数当转发请求到上游失败时,网关会自动触发重试转发请求,最大次数不超过重试次数
转发上游请求头可对转发上游请求头进行新建、编辑以及删除参数,主要应用于网关与上游间鉴权

填写完后,点击 "提交" 按钮.

此指南涵盖了在应用程序中配置路由的所有步骤,包括选择路由选项,添加路由,选择请求方式,配置 API 基础信息,以及最终提交配置。

编辑路由

  1. 点击待编辑路由后方的编辑按钮。

  1. 填写路由信息。

填写完后点击提交即可。

删除路由

  1. 点击待删除路由后方的删除按钮。

  1. 在弹出框中点击确认。

删除路由

  1. 点击待删除API后方的删除按钮。

  1. 在弹出框中点击确认