公众号merlinsea
GetMapping:用于从客户端到服务端端请求
/** * @RestController:标识这个类是一个控制器,同时返回json数据 */ @RestController public class GetController { /** * @RequestMapping()标明url访问路径 * @PathVariable() 标明把路径中的值映射到形参中 * url: localhost:8080/22/33 */ @RequestMapping(path="/{city_id}/{user_id}",method = RequestMethod.GET) public Object getMethod1(@PathVariable("city_id") String cityId,@PathVariable("user_id") String userId){ Map<String,Object> map = new HashMap<>(); map.put("cityId",cityId); map.put("userId",userId); return map; } /** * @GetMapping() 标明访问路径 * value的值的key必须和形参一致 * url: localhost:8080/api/v1/get_method2?name=lianglin&age=22 */ @GetMapping("api/v1/get_method2") public Object getMethod2(String name,int age){ Map<String,Object> map = new HashMap<>(); map.put("name",name); map.put("age",age); return map; } /** * @RequestParam() 设置默认参数 * url:localhost:8080/api/v1/get_method3?size=100 */ @GetMapping("api/v1/get_method3") public Object getMethod3(@RequestParam(defaultValue = "0") int from,int size){ Map<String,Object> map = new HashMap<>(); map.put("from",from); map.put("size",size); return map; } /** * @RequestBody 请求报文携带bean对象传递参数 * 需要指定http请求头content-type:application/json * 在请求报文中的body中保存数据 */ @GetMapping("api/v1/get_method4") public Object getMenthod4(@RequestBody User user){ Map<String,Object> map = new HashMap<>(); map.put("user",user); return map; } /** * @RequestHeader 获取请求报文中的请求头信息 * 请求头信息不会出现在url后面,通常存放用户token信息 * url:localhost:8080/api/v1/get_method5?id=12 */ @GetMapping("api/v1/get_method5") public Object getMethod5(@RequestHeader("access_token") String token,int id){ Map<String,Object> map = new HashMap<>(); map.put("token",token); map.put("id",id); return map; } /** * 用户访问的请求会自动映射到HttpServletRequest * url:localhost:8080/api/v1/get_method6?id=11 */ @GetMapping("api/v1/get_method6") public Object getMethond6(HttpServletRequest request){ Map<String,Object> map = new HashMap<>(); String id = request.getParameter("id"); map.put("id",id); return map; } }
Post/Put/Delete方法,也是客户端到服务器端的请求
@RestController public class OtherController { /** * @PostMapping 常用于表单提交 * PostMapping的提交封装为请求报文body中的表单形式 */ @PostMapping("api/v1/login") public Object login(String id, String pwd){ Map<String,Object> map = new HashMap<>(); map.put("id",id); map.put("pwd",pwd); return map; } /** * @RequestBody 从request body中取json数据 * @param user * @return */ @PostMapping("login") public Object login(@RequestBody User user){ System.out.println(user.toString()); return new String("okay"); } /** * url:localhost:8080/api/v1/put?id=12 */ @PutMapping("api/v1/put") public Object put(String id){ Map<String,Object> map = new HashMap<>(); map.put("id",id); return map; } @DeleteMapping ("api/v1/del") public Object del(String id){ Map<String,Object> map = new HashMap<>(); map.put("id",id); return map; } }