Restful 和amp;controller层的简化
补充知识:
一、REST简介
REST还有一个问题就是:
如访问地址 http://localhost/user 既可以表示为保存用户的路径,又可以表示添加用户信息的路径,也就是说:一个REST风格描述的资源访问路径可以代表几个不同的访问数据库资源信息的路径
因此、我们应该怎么精确的区分到底访问的是哪个路径下的资源呢:使用行为动作(请求方式)区分
二、restful入门
思路也就如下所示:
其实也就下面要点:
设置http请求动作(也就是:method是post请求还是get还是......)
路径参数{id}
@PathVariable注解
总体代码如下所示:
ServletContainersInitConfig:
SpringMvcConfig:
UserController:
-
package com.itheima.controller;
-
-
import com.itheima.domain.User;
-
import org.springframework.stereotype.Controller;
-
import org.springframework.web.bind.annotation.*;
-
-
-
public class UserController {
-
-
//设置当前请求方法为POST,表示REST风格中的添加操作
-
-
-
public String save({ Integer id)
-
System.out.println("user save..." id);
-
return "{'module':'user save'}";
-
}
-
-
//设置当前请求方法为DELETE,表示REST风格中的删除操作
-
//@PathVariable注解用于设置路径变量(路径参数),要求路径上设置对应的占位符,并且占位符名称与方法形参名称相同
-
-
-
public String delete({ Integer id)
-
System.out.println("user delete..." id);
-
return "{'module':'user delete'}";
-
}
-
-
//设置当前请求方法为PUT,表示REST风格中的修改操作
-
-
-
public String update({ User user)// @RequestBody注解:接收前端JSON数据
-
//格式的注解(看JSON那边的笔记)
-
System.out.println("user update..." user);
-
return "{'module':'user update'}";
-
}
-
-
//设置当前请求方法为GET,表示REST风格中的查询操作
-
//@PathVariable注解用于设置路径变量(路径参数),要求路径上设置对应的占位符,并且占位符名称与方法形参名称相同
-
-
-
public String getById({ Integer id)
-
System.out.println("user getById..." id);
-
return "{'module':'user getById'}";
-
}
-
-
//设置当前请求方法为GET,表示REST风格中的查询操作
-
-
-
public String getAll(){
-
System.out.println("user getAll...");
-
return "{'module':'user getAll'}";
-
}
-
-
}
前端用REST风格进行访问后端路径下的资源(就拿delete为例):
三、restful快速开发(简化)
简化1:下面的代码有什么特点:
路径/books要重复的写,实际开发中会比较麻烦
因此我们在springmvc处理客户端请求的时候就处理过该重复问题:把/books路径直接提出取来,如下所示:
简化2:把重复的/books路径简化之后,分析下面代码还有什么特点:
@ResponseBody 返回体的注解也要每个方法都要写,也是比较麻烦的,因此也可以把该注解提到类上面
简化后:(注意:如果用这种简化方式,那么就要保证每个方法都有响应给前端的返回值,因为该@ResponseBody注解就是响应给前端返回值数据的注解)
简化3:简化下面所示的注解(把两个注解合成一个注解,功能还是相同的)
用@RestController注解简化该两个注解
简化4:简化method动作:
然后就可以让前端进行路径请求了(以delete为例子):
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgejejh
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01