1.什么是 resultful
一种软件架构风格 :如下
GET /student //查找所有学生
GET /student/1 //查找id为1的学生
POST /student //新增一个学生
PUT /student/1 //修改id为1的学生
DELETE /student/1 //删除id为1的学生
使用同一个URL,请求方式:get/post/delete/put来区分不同的处理方法。
这样可以在前后台分离的开发中让前端开发人员不会对请求的资源地址产生混淆,形成一个统一的接口。
2. Spring MVC中的resstful应用
利用@RequestMapping 指定要处理请求的url模板和http请求的动作类型。
利用@PathVariable将url请求模板中的变量映射到处理方法参数上。
一般的应用格式如下:
@RequestMapping(value="/{url}",method=RequestMethod.GET)
@RequestMapping(value="/{url}",method=RequestMethod.GET)
@RequestMapping(value="/{url}",method=RequestMethod.POST)
@RequestMapping(value="/{url}",method=RequestMethod.DELETE)
@RequestMapping(value="/{url}",method=RequestMethod.PUT)
@RequestMapping(value="/api/{questionTypeId}/{chapterId}",method=RequestMethod.GET,produces="text/html;charset =UTF-8")
public void queryQuByTypeIdAndChaID(HttpServletRequest request,HttpServletResponse response,@PathVariable String questionTypeId,@PathVariable String chapterId ){
}
参考文档:https://blog.csdn.net/weide_java/article/details/53793769
3.SpringBoot中的resstful应用
在整个类上添加注解
@requestMapping(value="api/usersync",pricuce="application/json",charset="utf-8") //pricuce是指返回的数据类型。3
在方法上添加注解
@Postmapping //新增接口
public void createUser(@RequestBody User user){} //@RequestBody 指接受的数据类型参数是json格式
调用:/api/usersync
@putmapping(“/{userId}”) //修改接口
public void updateuser(@Pathvariable(name="userId") String userId, @RequestBody User user){} //此处的userId就是路径 中的参数 {userId}
调用:/api/usersync/001
@getmapping
public void getUserList(@RequestParam("type") String type,@RequestParam("num") String num){} //@RequestParam这 个注解的参数是必填的
调用:/api/usersync?tyoe=1&num=10
@getmapping("/{userId}")
public void getUserList(Pathvariable(name="userId") String userId) {}
调用:/api/usersync/userId
@Pathvariable 是将路径中的变量映射到参数中
@RequestParam 是必传的参数
4.解决postman传参为中文报错400问题
参考文档:https://blog.csdn.net/zt15732625878/article/details/98792654