Vue+SpringBoot实践(六):后端SpringBoot RESTful API开发

    科技2022-07-11  91

    CarmenSystem

    前言以用户管理为例

    前言

    正如第二章所介绍,我们这次项目主要是要做一个前后端分离的项目,前端和后端之间是通过RESTful API进行数据交互。RESTful API 就可以通过一套统一的接口为所有客户端提供web服务,实现前后端分离。RESTful API充分利用了Http现有方法来对应4种行为:get(获取),post(新增),put(修改)和delete(删除) eg. get /users:列出所有用户

    get /users/id:根据id获取用户

    post /user:新增用户

    put /user/id:根据用户id更新用户

    delete /user/id:根据用户id删除用户

    以用户管理为例

    用户登录验证,api为LoginController,该接口做一些基本的验证工作:

    @Controller public class LoginController { @Autowired UserManagerService userManagerService; @CrossOrigin @PostMapping(value = "api/login") @ResponseBody public int login(@RequestBody User user){ String username=user.getName(); username= HtmlUtils.htmlEscape(username); if(userManagerService.IsExitedUser(username)){ User user1=userManagerService.getUserById(userManagerService.getUserId(username)); if (Objects.equals(user1.getPasswd(),user.getPasswd())){ return 200; }else{ return 400; } }else { return 400; } } }

    注: @CrossOrigin表示该方法可以实现跨域请求,也可以放到类上面表示所有方法都可跨域。

    GET 请求:@GetMapping(“users”) 等价于@RequestMapping(value="/users",method=RequestMethod.GET)

    POST 请求:@PostMapping(“users”) 等价于@RequestMapping(value="/users",method=RequestMethod.POST)

    PUT 请求:@PutMapping("/users/{userId}") 等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.PUT)

    DELETE 请求:@DeleteMapping("/users/{userId}")等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.DELETE)

    @RequestBody用于读取 Request 请求(可能是 POST,PUT,DELETE,GET 请求)的 body 部分并且Content-Type 为 application/json 格式的数据,接收到数据之后会自动将数据绑定到 Java 对象上去。系统会使用HttpMessageConverter或者自定义的HttpMessageConverter将请求的 body 中的 json 字符串转换为 java 对象。

    @ResponseBody的作用其实是将java对象转为json格式的数据。

    Processed: 0.058, SQL: 8