Spring Boot(一)之请求接口示例
1. 创建一个Spring Boot的web程序
1.1 创建一个Project
选择Spring Initializr,点击Next。
1.2 编辑Project Metadata,如图:
修改Group,Artifact,点击Next
1.3 选择Web程序
点击Next
1.4 选择项目的目录
点击Finish
这样项目就创建好了,如图:
SpringBootDemoApplication是程序的入口,接下来编写程序的接口。
2. get请求接口编写
2.1 get无参数请求
创建一个controller目录,创建一个MyController类,在MyController类中创建一个hello方法。具体如下:
@RestController
public class MyController {
@GetMapping("/hello")
public String hello() {
return "hello";
}
}
@RestController:相当于 @Resquest + @Controller
@GetMapping(“/hello”):是Get方法的映射,映射的路径是/hello
运行Spring Boot程序,请求:
http://localhost:8080/hello
,结果如下:
2.2 get带参数的请求(一个参数)
@RestController
public class MyController {
@RequestMapping(value = "/search", method = RequestMethod.GET)
public String search(@RequestParam String params) {
System.out.println(params);
return "hello " + params;
}
}
@RequestMapping:表示请求的映射,value的值表示路径,method的值是请求方式,如:GET,POST等。
@RequestParam:表示请求参数,这里请求参数是params
请求结果如下:
这里需要注意,一定是params=?,不然报错。
2.3 get多个参数请求
@RestController
public class MyController {
@GetMapping("/searchall")
public String searchAll(@RequestParam Map map) {// 这个也可以使用bean对象
System.out.println(map);
return map.toString();
}
}
请求结果如图:
2.4 get路径匹配
@RestController
public class MyController {
@GetMapping("/search/{path}")
public String path(@PathVariable String path) {
System.out.println(path);
return path;
}
}
@PathVariable:path的变量,表示上面路径的{path}
请求结果如下:
在实际中,path的方式可以和携带参数请求的结合。
3. post请求接口编写
3.1 post带一个请求参数
@RestController
public class MyController {
@PostMapping("/find")
public String find(@RequestBody String userId) {
System.out.println(userId);
return userId;
}
}
@RequestBody:post的请求体
请求结果,如下:
3.2 post请求,使用Map封装RequestBody
@RestController
public class MyController {
@PostMapping("/addmap")
public String addUser1(@RequestBody Map map) {
System.out.println(map);
return map.toString();
}
}
请求结果如下:
3.3 post请求,使用Bean封装RequestBody
@RestController
public class MyController {
@PostMapping("/adduser")
public String addUser(@RequestBody User user) {
System.out.println(user);
return "Success";
}
}
请求结果:
3.4 post请求,使用Bean封装RequestBody,并返回ResponseBody
@RestController
public class MyController {
@ResponseBody
@PostMapping("/finduser")
public User findUser(@RequestBody User user) {
System.out.println(user);
return user;
}
}