Sentinel RESTful URL支持

"本文介绍了如何使用Sentinel来处理RESTful接口的URL问题,特别是当URL包含变量参数时。通过实现`UrlCleaner`接口,我们可以统一不同参数的URL,便于规则设置。在示例中,作者展示了如何创建一个名为`MyUrlClearner`的类,将数字参数替换为`{number}
摘要由CSDN通过智能技术生成


前言

在这里插入图片描述
一个Restful接口,后面跟着一个数字参数。导致每次的请求url都不一样,例如:/shares/1 ,/shares/2 ,这时候的规则就不好针对这个Api设定。


Sentinel RESTful URL支持

一、实现接口UrlCleaner


import com.alibaba.csp.sentinel.adapter.servlet.callback.UrlCleaner;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.math.NumberUtils;
import org.springframework.stereotype.Component;

import java.util.Arrays;


@Component
@Slf4j
public class MyUrlClearner implements
        UrlCleaner {
    @Override
    public String clean(String originUrl) {

        //总之就是要把Restful的URL统一的 返回一个
        String[] split = originUrl.split("/");
        return Arrays.stream(split).map(string-> {
            if(NumberUtils.isNumber(string)){
                return "{number}";
            }
            return string;
        }).reduce((a,b)->a+"/"+b).orElse("");
    }
}

二. 测试

  1. 访问http://localhost:8081/shares/1
  2. sentinelDashboard出现

在这里插入图片描述

针对与这个restful接口做规则即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值