restful风格

        restful风格,什么是restful风格?,REST是REpresentational State Transfer的缩写(表述性状态转移),不讲这么官方啦,直接看对比,首先这是咱们很久之前的一个请求:localhost:8080/user/page?currentPage=1?pageSize=5,但是用来咱们的restful风格之后的请求是这样的:localhost:8080/user/page/1/5对比一下,后者是不是特别的简洁呢。

        知道咱们restful请求具体是啥样了,如何去实现呢?,其实啊也是特别的简单,用一个@PathVariable的注解就好啦。

对于localhost:8080/user/page/1/5这样一个请求,它的实现是这样的:


/**
 * @author shenwang
 * @version 1.0
 */
@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;
    
   @GetMapping("/page/{currentPage}/{pageSize}")
   private List<User> selectPage(@PathVariable Integer currentPage,@PathVariable Integer pageSize){
       return userService.selectPage(currentPage,pageSize);
   }
}

咱们再回来对比一下这个请求localhost:8080/user/page/1/5

@RestController
@RequestMapping("/user")
public class UserController {
    @GetMapping("/page/{currentPage}/{pageSize}")
    .........
    .........
}

也就是用位置去对应咱们传的参数

        restful风格还有一个特点,就是不用方法名去约束请求,而是去用请求的类型去约束请求,我要做查询我Java代码就用@GetMapping,前端使用get请求,我要做添加我后端就用@PostMapping,前端就对应着使用post请求,我后端要做修改 我Java代码就用@PutMapping,前端代码还是用post请求,如果我要做删除,我Java代码就是用@DeleteMapping,前端请求就使用delete请求,总结一下

操作         Java注解                 前端请求

查询         @GetMapping         get

新增         @PostMapping        post

修改         @PutMapping          post

删除         @DeleteMapping     delete

看着咱们前端请求的所有类型,对应后端:


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import com.mjs.common.pojo.User;
import com.mjs.service.UserService;

/**
 * @author shenwang
 * @version 1.0
 */
@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 查询所有
     * @return
     */
   @GetMapping
   private List<User> selectAll(){
        return userService.selectAll();
    }
    /**
     * 新增用户
     * @param user
     * @return
     */
   @PostMapping
   private boolean add(@RequestBody User user){
       return true;
   }

    /**
     * 修改用户
     * @param user
     * @return
     */
   @PutMapping
   private boolean update(@RequestBody User user){
       return true;
   }
    /**
     * 根据用户id删除用户
     * @param userId
     * @return
     */
   @DeleteMapping("/{userId}")
   private boolean delete(@PathVariable String userId){
       return true;
   }
}

        这样咱们前端请求的可以全是:localhost:8080/user,只要咱们请求类型不用他们就可以请求到咱们不同的方法啦,悟了吗

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值