资讯详情

Restful风格请求响应和数据库封装映射

📅 2026/11/3 10:47:04 | 华诺云谱 👁 阅读
Restful风格请求响应和数据库封装映射
目录一、Restful风格的请求二、Apifox软件三、定义响应数据统一格式的java实体类四、后端接收路径指定请求方式五、从请求中接收简单参数RequestParam六、请求体中接收参数RequestBody七、请求路径中接收简单参数PathVariable八、公共路径抽取 RequestMapping共有路径九、实体类和数据库字段的封装映射一、Restful风格的请求根据请求方式描述操作更加的规范统一容易维护Restful风格URL请求方式含义http://localhost:8080/user/1GET查询ID为1的用户http://localhost:8080/user/1DELETE删除ID为1的用户http://localhost:8080/userPOST新增用户http://localhost:8080/userPUT修改用户二、Apifox软件Restful风格的请求浏览器地址栏只支持发出 GET 请求。其他请求方式就要借助第三方软件Apifox软件模拟前端向后端发送的不同方式的请求。1、新建HTTP接口2、选择请求方式和请求地址点击发送即可模拟前端发送的请求。三、定义响应数据统一格式的java实体类实体类Result包含成员1、Integer code响应代码1成功0失败2、String msg返回信息3、Object data响应的数据包含静态成员方法1、Result success()操作成功响应无数据2、Result success(Object object)操作成功响应带数据传入数据data属性中。3、Result error(String msg)操作失败响应传入错误信息。四、后端接收路径指定请求方式1、不限定请求方式RequestMappingRequestMapping(/users) ***此注释表示不限定请求方式*** public Result list(){ System.out.println(查询全部用户数据); Listuser userList userService.findAll(); return Result.success(userList); }2、限定请求方式GET方式1RequestMapping(value /usersmethod RequestMethod.GET)方式2GetMapping(/users) --------SpringBoot提供的注解推荐简洁POSTPostMapping(users)DELETEDeleteMapping(/user/1)PUTPutMapping(/user)五、从请求中接收简单参数RequestParam场景删除id为5的用户数据请求方式DELETEurl/users?id5方式一原始繁琐基于HttpServletRequest 获取请求参数DeleteMapping(/users) public Result deleteById(HttpServletRequest request) { String idStr request.getParameter(id); //通过对象中获取键为id的值获取到字符串类型id。 int id Integer.parseInt(idStr); //字符串转化为int类型方便后续操作 后续操作略---- return Result.success(); //删除不需带数据返回。 }方式二推荐)Spring提供的RequestParam()注解DeleteMapping(/users) public Result deleteById(RequestParam(id) Integer userId) { 操作略---- return Result.success(); //删除不需带数据返回。 }注意一旦声明了RequestParam注解该参数在请求时必须传递如果不传递将会报错。解决此问题要修改该注解内参数修改过后不传参数id将会是nullpublic Result deleteById(RequestParam(value id,required false) Integer userId)方式三推荐如果请求参数名与形参变量名相同直接定义方法形参即可接收省略RequestParam注解DeleteMapping(/users) public Result deleteById(Integer id) { 操作略---- return Result.success(); //删除不需带数据返回。 }六、请求体中接收参数RequestBody场景接收JSON格式的请求参数用于新增用户请求方式POSTurl/users前提JSON数据的键名与方法形参对象的属性名相同并需要使用RequestBody注解标识请求体JSON{ name: 张三, age: 19 }实体类Data //lombok提供get set方法 AllArgsConstructor //lombok提供全参构造 NoArgsConstructor //lombok提供无参构造 public class User { private String name; private Integer age; }请求处理类Requestbody使用PostMapping(/users) public Result add(RequestBody User user) { userService.add(user); //service层传入对象进行添加。 return Result.success(); }七、请求路径中接收简单参数PathVariable场景根据前端请求携带的路径参数ID查询回显请求方式GETurl/users/1请求处理类: PathVariable注解获取路径中id的值赋值给形参userIdGetMapping(/users/{id}) public Result getInfo(PathVariable(id) Integer userId) { User user userService.getInfo(userId); return Result.success(user); }如果形参的名字跟请求路径参数的名字一致就可以省略PathVariable注解的值GetMapping(/users/{id}) public Result getInfo(PathVariable Integer id) { User user userService.getInfo(id); return Result.success(user); }多个路径参数GetMapping(/users/{id}/{name}) public Result getInfo(PathVariable Integer id,PathVariable String name) { User user userService.getInfo(id); return Result.success(user); }八、公共路径抽取 RequestMapping共有路径场景多个接收类都包含同样的路径/users就可以抽取公共路径1、GetMapping/users获取全部成员信息。走URL2、GetMapping/users/{id}获取指定id的成员信息。走URL3、DeleteMapping/users删除成员信息。走URL4、PostMapping/users新增成员信息。走请求体5、PutMapping/users修改成员信息。走请求体请求处理类上添加RequestMapping注解RequestMapping(/users) //抽取公共路径/users RestController public class UserController{ GetMapping //省略路径 public Result findAll() { 获取成员列表 } PutMapping //省略路径 public Result updateById(RequestBody User user) { 修改成员信息 } GetMapping(/{id}) //省略公共路径包含独有路径 public Result GetInfo(PathVariable Integer id) { 根据路径参数查询回显成员信息 } }九、实体类和数据库字段的封装映射1、自动映射前提实体类属性名和数据库表的字段名一致MyBatis会自动封装。2、如果字段名与实体类属性名不一致以下是解决方案数据库字段create_time、update_time。实体类成员createTime、updateTime。方式一Mapper层中使用Results和Result注解进行手动映射Results({ Result(column create_time,property createTime), Result(column update_time,property updateTime) }) Select(select * from users) //查询users表中所有字段。 public ListUser findAll(); //返回给一个List集合。方式二Mapper层sql语句中给数据库中字段起别名Select(select id,name,create_time createTime,update_time updateTime from users) public ListUser findAll();方式三推荐如果字段名与属性名符合驼峰命名规则使用Mybatis开启驼峰命名映射yml配置文件写入以下映射要求xxx_Abc xxxAbcmybatis configuration map-underscore-to-camel-case: true //此行表示开启驼峰命名映射
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑