常用的网络请求方式包括GET, POST, PUT, DELETE等,这些请求方式在Springboot中是如何使用的呢?下面就对这个内容进行探究。
Springboot使用@RequestMapping来映射请求,前端发来请求可以通过@RequestMapping来决定由哪个函数处理。
@RequestMapping主要由value和method两个属性,value指的是映射路径,method指的是何种请求(可以设置多个)。例如:@RequestMapping(value=“/login”,method=RequestMethod.GET)
@GetMapping、@PostMapping、@PutMapping和@DeleteMapping分别是@RequestMapping请求方法为get、post、put、delete的派生注解。也就是说凡是使用到上面四种注解的地方都可以使用@RequestMapping来代替。如果@RequestMapping不设置method,那么它将接收符合条件的任何访问方式的请求。
下面是一个请求的前后端的代码示例(使用get请求方式):
@RequestMapping("/list")
public TableDataInfo list(CourseInfo courseInfo){
Integer pageNum = courseInfo.getPageNum();
Integer pageSize = courseInfo.getPageSize();
String orderBy = courseInfo.getOrderBy();
PageUtils.startMyPage(pageNum,pageSize,orderBy);
List courseInfoList = courseService.selectCourseInfoList(courseInfo);
return PageUtils.getMyDataTable(courseInfoList);
前端
export function listCourse(query){
return request({
// 这里多加一个/course的原因是在后端的整个类上加了 @RequestMapping("/course")注解
url:'/course/list',
method:'get',
params:query
})
}
一般在报错的http状态为405的时候,指的是请求方法不允许。出现这种错误需要考虑前后端的请求方法是否匹配。
可以使用带有占位符的@RequestMapping方法,将URL中的占位符绑定到处理方法的参数里。
@RequestMapping("/{id}")
public AjaxResult getCourse(@PathVariable("id") Long id){
return AjaxResult.success(courseService.selectCourseById(id));
}
相当于:
@RequestMapping(value="/{id}", method=RequestMethod.PUT)
实例后端:
@PutMapping
public AjaxResult edit(@RequestBody CourseInfo courseInfo){
return toAjax(courseService.updateCourse(courseInfo));
}
实例前端:
export function updateCourse(data){
return request({
url:'/course',
method:'put',
data:data,
})
}
相当于:
@RequestMapping(value="", method=RequestMethod.POST)
实例后端:
@PostMapping
public AjaxResult add(@RequestBody CourseInfo courseInfo){
System.out.println(courseInfo.toString());
return toAjax(courseService.insertCourse(courseInfo));
}
实例前端:
export function addCourse(data){
return request({
url:'/course',
method:'post',
data:data,
})
}
相当于:
@RequestMapping(value="/{id}", method=RequestMethod.DELETE)
实例后端:
@DeleteMapping("/{ids}")
public AjaxResult delCourse(@PathVariable Long []ids){
return toAjax(courseService.delCourse(ids));
}
实例前端:
export function delCourse(id) {
return request({
url:'/course/'+id,
method:'delete'
})
}
对@RequestMapping的总结告一段落,主要是RequestMapping的作用、参数、路由占位符使用,及其派生注解等。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦