SpringMVC(3_RESTful风格接口)

  • RESTful架构是对MVC架构改进后所形成的一种架构,通过使用事先定义好的接口与不同的服务联系起来。在RESTful架构中,浏览器使用POST,DELETE,PUT和GET四种请求方式分别对指定的URL资源进行增删改查操作。因此,RESTful是通过URI实现对资源的管理及访问,具有扩展性强、结构清晰的特点。
  • RESTful架构将服务器分成前端服务器和后端服务器两部分,前端服务器为用户提供无模型的视图;后端服务器为前端服务器提供接口。浏览器向前端服务器请求视图,通过视图中包含的AJAX函数发起接口请求获取模型。

通过请求方法的不同,使用不同的handler方法来进行处理

localhost:8080/user
GET:查询
POST:更新
DELETE: 删除

设计接口的url
名词(资源)+动词(操作)的形式
查询: user/query user/list
更新: user/update
删除: user/delete

@ResponseBody和@RequestBody
获得请求能够提供的值,封装为handler方法的形参

0.代码

在这里插入图片描述
BaseRespVo

@Data
public class BaseRespVo<T> {
    T data;
    String message;
    long errno;

    public static BaseRespVo ok(){
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setMessage("成功");
        baseRespVo.setErrno(0);
        return baseRespVo;
    }
    public static  BaseRespVo ok(Object data){
        BaseRespVo ok = BaseRespVo.ok();
        ok.setData(data);
        return ok;
    }
}

RestfulController

@RestController
public class RestfulController {

    @RequestMapping("{usernamez}/article/details/{idz}")
    public BaseRespVo articleDetails(@PathVariable("usernames") String username,
                                     @PathVariable("idz") Integer id){
        return BaseRespVo.ok(username+":"+id);
    }

    //localhost:8080/login?username=jingtian&password=niupi
@RequestMapping("login")
    public BaseRespVo login(@RequestParam("username") String parameter1,
                            @RequestParam("password") String parameter2){
    return BaseRespVo.ok();
}

@RequestMapping("header")
public BaseRespVo header(@RequestHeader("Accept") String[] accept,
                         @RequestHeader("Host") String host){
    for (String s : accept) {
        System.out.println(s);
    }
    System.out.println(host);
    return BaseRespVo.ok();
}
@RequestMapping("cookie/value")
public BaseRespVo cookieValue(@CookieValue("username")String value){
return BaseRespVo.ok();
    }

    @RequestMapping("put/session/{username}")
    public BaseRespVo putSession(@PathVariable("username")String value, HttpSession session){
        session.setAttribute("username",value);
        return BaseRespVo.ok();
    }
    @RequestMapping("session/attribute")
    public BaseRespVo sessionAttribute(@SessionAttribute("username")String value){
        return BaseRespVo.ok(value);
    }
}

1.@PathVariable 👉 url(最重要)

获得请求url的一部分作为形参
在这里插入图片描述
在这里插入图片描述

2. @RequestParam 👉 请求参数

获得请求参数作为形参

在这里插入图片描述
在这里插入图片描述

3. @RequestHeader 👉 请求头

拿到特定的请求头中的值
在这里插入图片描述

在这里插入图片描述

4. @CookieValue 👉 Cookie

拿到cookie中指定name所对应的value
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5. @SessionAttribute 👉 Session

拿到session中指定attributename对应的value
在这里插入图片描述
在这里插入图片描述
也可以使用Object来接受对应的值

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值