当前位置: 首页 > news >正文

网站开发交流国外免费源码共享网站

网站开发交流,国外免费源码共享网站,网线制作实验总结,江西中耀建设集团有限公司网站目录 Predicate(断言)内置Predicate请求参数匹配请求路径匹配Header 属性匹配Cookie 匹配请求方式匹配请求 ip 地址匹配时间匹配组合匹配 Predicate(断言) 在 Spring Cloud Gateway 中,Predicate(断言&…

目录

    • Predicate(断言)
    • 内置Predicate
      • 请求参数匹配
      • 请求路径匹配
      • Header 属性匹配
      • Cookie 匹配
      • 请求方式匹配
      • 请求 ip 地址匹配
      • 时间匹配
      • 组合匹配

Predicate(断言)

在 Spring Cloud Gateway 中,Predicate(断言)是用于匹配传入请求的条件。它们用于确定哪些请求应该被路由到特定的目标服务。

Predicate 接受一个输入参数,返回一个布尔值结果。该接口包含多种默认方法来将 Predicate 组合成其他复杂的逻辑(比如:与,或,非)。

Spring Cloud Gateway 提供了多种预定义的 Predicate,可以根据不同的条件进行路由匹配。以下是一些常用的 Predicate

内置Predicate

请求参数匹配

Query Route Predicate 支持传入两个参数,一个是属性名一个为属性值,属性值可以是正则表达式。

示例:

spring:cloud:gateway:routes:- id: my_routeuri: https://example.orgpredicates:- Query=myparameter

这样配置,只要请求中包含 myparameter属性的参数即可匹配路由。

我们还可以对参数值也进行配置

spring:cloud:gateway:routes:- id: my_routeuri: https://example.orgpredicates:- Query=myparameter,parametervalue

这样配置, myparameter属性的值为parametervalue才会匹配

同时我们还可以使用正则表达式来表示

        predicates:- Query=myparameter,my.

这样只要当请求中包含 myparameter属性并且参数值是以 my 开头的长度为三位的字符串才会进行匹配和路由。

请求路径匹配

Path Route Predicate 接收一个匹配路径的参数来判断是否走路由。

spring:cloud:gateway:routes:- id: my_routeuri: https://example.orgpredicates:- Path=/user/**

这样设置,则/user开头的任一路径都会匹配路由

在路径配置中,我们可以使用{segment}来进行占位,表示一个请求路径中的特定段
具体来说,{segment}可以用于匹配请求路径中的任意段。例如,如果有一个路由路径定义为/api/{segment}/users,那么当请求路径为/api/profile/users时,{segment}将会被替换为profile,从而匹配该路由路径。

但是{segment}不支持匹配子路径,如果想匹配子路径需要使用/**

Header 属性匹配

Header Route Predicate 接受两个参数:一个 header 中属性名称和一个正则表达式,这个属性值和正则表达式匹配则执行

spring:cloud:gateway:routes:- id: header_routeuri: https://example.orgpredicates:- Header=X-Request-Id, \d+

这样配置,则只有header请求头中有X-Request-Id属性,并且属性值为数值的时候才匹配路由

Cookie 匹配

Cookie Route Predicate 可以接收两个参数,一个是 Cookie name ,一个是正则表达式,路由规则会通过获取对应的 Cookie name 值和正则表达式去匹配,如果匹配上就会执行路由,如果没有匹配上则不执行。

spring:cloud:gateway:routes:- id: cookie_routeuri: https://example.orgpredicates:- Cookie=chocolate, ch.p

这样配置,请求必须包含一个名为chocolate的cookie,其值需要与ch.p正则表达式匹配才会进行路由

请求方式匹配

可以通过是 POST、GET、PUT、DELETE 等不同的请求方式来进行路由,支持一个或多个参数

spring:cloud:gateway:routes:- id: method_routeuri: https://example.orgpredicates:- Method=GET,POST

这样配置,如果请求方法是GET或POST,则此路由匹配

请求 ip 地址匹配

Predicate 也支持通过设置某个 ip 区间号段的请求才会路由,RemoteAddr Route Predicate 接受 cidr 符号(IPv4 或 IPv6 )字符串的列表(最小大小为1),例如 192.168.0.1/16 (其中 192.168.0.1 是 IP 地址,16 是子网掩码)。

在 CIDR 表示法中,IP 地址后面跟着斜杠和一个数字,斜杠后的数字表示子网掩码位数。

CIDR 符号的范围从 /0 到 /32,对应着不同长度的子网掩码位数。较小的数字表示更大的范围,例如 /0 表示整个 IP 地址空间,而 /32 表示单个主机地址。

spring:cloud:gateway:routes:- id: remoteaddr_routeuri: https://example.orgpredicates:- RemoteAddr=192.168.1.1/24

192.168.1.1/24 表示一个 CIDR 格式的 IP 地址范围,其中 /24 表示子网掩码。这个范围包括从 192.168.1.1 到 192.168.1.254 的所有 IP 地址。例如,如果请求的远端地址为192.168.1.10,则此路由匹配。

如果你只想匹配单个ip地址,那么可以使用ip/32来表示,ip/32表示只有该 IP 地址本身才会匹配,其他任何 IP 地址都不会与之匹配。

时间匹配

我们可以指定某个时间前后的请求匹配路由

After :匹配在指定日期时间之后发生的请求

spring:cloud:gateway:routes:- id: after_routeuri: https://example.orgpredicates:- After=2017-01-20T17:42:47.789-07:00[America/Denver]

如果想匹配某个日期之前,那么可以使用Before

spring:cloud:gateway:routes:- id: before_routeuri: https://example.orgpredicates:- Before=2017-01-20T17:42:47.789-07:00[America/Denver]

组合匹配

多个 Predicates 可以同时存在于同一个路由,请求必须同时满足所有的条件才被这个路由匹配

示例

spring:cloud:gateway:routes:- id: method_routeuri: https://example.orgpredicates:- Method=POST- Header=X-Request-Id, \d+

这样配置,只有当请求方法是POST方法,而且请求头有X-Request-Id属性,且值为数值才会匹配

http://www.zhongyajixie.com/news/24449.html

相关文章:

  • python破解wordpress做百度seo
  • 成都电商网站开发怎么建立一个自己的网站
  • 成都网站制作培训多少钱seo最新技巧
  • 温州做高端网站公司排名最近10条重大新闻
  • 深圳营销型网站建设服务成都黑帽seo
  • 网站禁止访问目录最新seo网站优化教程
  • 网站代码下载免费网站注册平台
  • 网站模板 自适应轻松seo优化排名 快排
  • 南昌做网站优化哪家好百度网盘搜索引擎入口
  • 如何做最强的社交网站长沙seo网络公司
  • 成都网站建设龙兵网络商丘网站seo
  • 京东网站开发框架宁波seo网站服务
  • 网页视觉设计流程刷神马seo排名首页排名
  • 网页设计从入门到精通短视频seo搜索优化
  • 南京小程序开发网站建设公司云搜索app
  • 中国网站排名 优帮云2023网站seo
  • 网站的建设 教学计划qq引流推广平台
  • 怎样写精品课程网站建设百度灰色关键词技术
  • 年轻人免费观看视频百度词条优化工作
  • 品牌网站建设收费标准计算机培训机构哪个最好
  • 怎么设计网站页面自助建站网站哪个好
  • dede如何生成网站源码镇江网站建设推广
  • wordpress页面权限宁波seo外包优化公司
  • 高大上的平面设计网站营业推广方式
  • 上海网站建设模板网站建设是干什么的
  • 做网站需要了解什么如何推广一个产品
  • 做网站维护要多少钱一年东莞网站建设最牛
  • 做网站 前端传统营销方式有哪些
  • 建站点百度客服怎么转人工
  • 做短视频网站用哪家cms百度秒收录软件工具