RESTful风格下@RequestBody和@RequestParam应用场景区别

RESTful是什么:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

今天使用PostMan发报文去请求服务器,post和put放回正常结果,而发送get和delete则返回如下信息

 "error": "Bad Request",
 "exception": "org.springframework.web.bind.MissingServletRequestParameterException",
 "message": "Required String parameter 'userName' is not present",

显示userName不存在,但是我明明有配置啊,后来我发现原来我post和put用的是@RequestBody来接收参数,而delete和get使用@RequestParam,那么我使用postman发送json格式报文给get和delete报错就解释得通了,也就引出了今天的话题,这两者的区别

  • 区别
    1. 一般get我们用@RequestParam接收参数
      @RequestParam在后台可以写多个参数接收,并检查是否必传
    2. @RequestBody用来接收json格式数据
      @RequestBody在后台只能写一个参数,所以一般都是个集合或者类

一般来说对于spring开发过程中,我的后台接收参数会这样设计:

  1. 对于post和put请求,我会使用@RequestBody
  2. 对于get和delete请求,我会使用@RequestParam

RESTful风格的请求连接,简洁安全,具体特点可以看阮一峰理解RESTful架构

我们开发中如果完全遵循RESTful进行设计,请求URL就不能出现动词,只能是名词,代表请求的资源,至于对资源的操作CRUD,就通过请求的方式:

  1. get 获取
  2. post 添加
  3. delete 删除
  4. put 修改

但由此会带来一些不方便,对于前端的要求也会有所提升,至少你的会发送delete和put请求。
当然对于RESTful的好处来说,这点处理可能算不上什么。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值