SpringBoot的Restful的请求路径参数@PathVariable注解的使用

1. 介绍

1.1 介绍

大家都知道RESTFul风格的接口的URI路径和普通的接口是不一样的,根据RESTFul的规范请求的URI路径里需要指向一个具体的资源(Resource),这个URI路径里面可以包含资源版本(Version)和参数(Parameter),那么我们在实现RESTFul接口功能的时候就需要去从URI路径里面提取资源信息以及版本和参数了。

SpringBoot框架提供了一个简单的方法来提取URI路径里面的版本和参数,它通过@PathVariable注解来实现,今天福哥就带着童鞋们学习如何使用@PathVariable来获取URI路径里面的版本和参数。

2. 教程

2.1 规范

设置@PathVariable的方法就是在Mapping地址里面通过{xxx}来设置采集参数,然后在映射方法声明里面通过@PathVariable注解将采集到的参数数值的参数赋值给映射方法的参数上面。

2.2 整段

将URI的一级目录名称作为参数。

@RequestMapping("/net.tongfu.path-variable/{version}/user/{user}")
public Map pathVariable1(
        @PathVariable("version") Float version,
        @PathVariable("user") String user
){
    Map map = new LinkedHashMap<>();

    map.put("version", version);
    map.put("user", user);

    return map;
}

2.3 右匹配

将URI的一级目录名称的右边部分作为参数。

@RequestMapping("/net.tongfu.path-variable/user/tf-{userID}")
public Map pathVariable2(
        @PathVariable("userID") Integer userID
){
    Map map = new LinkedHashMap<>();

    map.put("userID", userID);

    return map;
}

2.4 中间匹配

将URI的一级目录名称的中间部分作为参数。

@RequestMapping("/net.tongfu.path-variable/user/tfu{userName}data")
public Map pathVariable3(
        @PathVariable("userName") String userName
){
    Map map = new LinkedHashMap<>();

    map.put("userName", userName);

    return map;
}

3. 总结

其实我们通过在Mapping里设置{xxx}模板参数后,系统在用户请求到达后就会通过正则表达式对URI路径进行匹配,然后将匹配到的参数数值赋值给映射方法的参数,我们就可以使用了!


https://tongfu.net/home/35/blog/513583.html