spring boot(3)-Rest风格接口

时间:2023-01-03 10:11:40

Rest接口

虽然现在还有很多人在用jsp,但是其实这种动态页面早已过时,现在前端流行的是静态HTML+ rest接口(json格式)。当然,如果是单台服务器,用动态还是静态页面可能没什么很大区别,但是如果服务器用到了集群、负载均衡、CDN等技术,用动态页面还是静态页面差别非常大,这不是一两句能解释清楚的,也不是本篇讨论的内容。只是建议尽量使用HTML+ rest来做WEB,本博客也主要讲解这方面的用法,而不会讲关于jsp之类的动态用法

传统rest用法 

用spring mvc可以很容易的实现json格式的rest接口,这是比较传统的用法,在spring boot中已经自动配置了jackson

//注册一个spring控制层bean
@Controller
public class HelloController {
//配置方法的post请求url
@RequestMapping(value= "/url",method=RequestMethod.POST)
//将这个方法的返回值转换成特定格式,默认是json
@ResponseBody
//user用来接收前端请求的相关传参,比如form表单中的参数
public String hello(User user){
return "hello world"; //这个返回值就是前端ajax请求rest的返回值
}
}

新的rest用法

在较新的spring版本中,出了几个新的注解,简化了上面的用法,如下
//@Controller+@ResponseBody组合,相当于在每个方法都加上@ResponseBody。
@RestController
public class HelloController {
//直接指定Post请求,同样也有@GetMapping
@PostMapping("/url")
//@RequestBody是指请求来的参数是json格式,以json格式来转换到uer,现在用json传参已经用的越来越多
public String hello(@RequestBody User user){
return "hello world";
}
}

前端ajax请求rest

JS请求AJAX我就不说的,不同的JS框架有不同的用法。如果要请求上面的rest接口,只需要在请求时指定url为http://localhost:8080/url,请求方法为post,传入相应的参数,上面的方法就会向AJAX请求返回一个字符串"hello world",返回值 也可以是一个java复合类型,@ResponseBody注解会自动将其转换成json格式。