6、用restful风格写controller方法接口,单元测试依赖

编写单元测试,用restful风格写controller方法

单元测试依赖

实际项目开发中,单元测试与业务代码通常都会要求同步进行
TDD测试驱动开发:先编写单元测试,然后努力去开发业务代码去满足所有的单元测试用例。

添加SpringBoot的测试依赖

spring-boot-starter-test.jar , 传递依赖了最新JUnit 5.x的单元测试框架。

javascript 复制代码
        <!--    springboot测试依赖    -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
复制代码
Restful API常用映射注解:

@Controller:在一个类上添加@Controller注解,表明了这个类是一个控制器类。

@ResponseBody:表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。

@RestController:相当于@Controller+@ResponseBody注解。

@RequestMapping:这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上。 

@GetMapping:这个注解是@RequestMapping的变体,可以接收GET的请求方式,在RestFul在处理获取资源的请求。

@PostMapping:这个注解是@RequestMapping的变体,可以接收Post的请求方式,在RestFul在处理创建资源的请求。

@PutMapping:这个注解是@RequestMapping的变体,可以接收Put的请求方式,在RestFul在处理修改资源的请求。

@DeleteMapping:这个注解是@RequestMapping的变体,可以接收Delete的请求方式,在RestFul在处理删除资源的请求。

@RequestParam:将请求参数绑定到你控制器的方法参数上。

@PathVariable:接收请求路径中占位符的值。

@RequestBody:用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)。

把之前的增删查方法换成 RestFul写法。

从原先的方法返回视图,改成 直接使用方法的返回值作为响应。

注意点:这里的三个方法的映射路径是一样的,都是/books

区别就是换成RestFul风格,使用注解@ResponseBody,表示返回的是json格式的数据。

添加书籍:PostMapping,查询书籍:GetMapping

删除书籍:DeleteMapping(之前的删除使用GetMapping)

之前三个方法的代码:

改成RestFul风格:也就是直接用方法的返回值作为响应。

用Postman测试三个方法:

添加书籍:成功

查看书籍:成功

删除书籍:成功

三个方法都是访问同一个映射路径,但是可以通过RestFul风格的注解(get、post、delete)去区分对应的执行方法。

相关推荐
Focusbe1 小时前
百变AI助手:离线优先数据同步方案设计
前端·后端·面试
小蒜学长2 小时前
springboot基于BS的小区家政服务预约平台(代码+数据库+LW)
java·数据库·spring boot·后端
我命由我123452 小时前
Git 暂存文件警告信息:warning: LF will be replaced by CRLF in XXX.java.
java·linux·笔记·git·后端·学习·java-ee
简色2 小时前
预约优化方案全链路优化实践
java·spring boot·后端·mysql·spring·rabbitmq
学编程的小鬼3 小时前
SpringBoot日志
java·后端·springboot
用户4099322502123 小时前
PostgreSQL备份不是复制文件?物理vs逻辑咋选?误删还能精准恢复到1分钟前?
后端·ai编程·trae
HWL56793 小时前
输入框内容粘贴时 &nbsp; 字符净化问题
前端·vue.js·后端·node.js
IT_陈寒3 小时前
「JavaScript 性能优化:10个让V8引擎疯狂提速的编码技巧」
前端·人工智能·后端
武子康4 小时前
大数据-116 - Flink Sink 使用指南:类型、容错语义与应用场景 多种输出方式与落地实践
大数据·后端·flink
lbwxxc4 小时前
go 基础
开发语言·后端·golang