1. 查询功能
先把controller代码拿出来
@RestController @RequestMapping("/eduservice/edu-teacher") public class EduTeacherController { @Autowired private EduTeacherService eduTeacherService; //1.查询所有数据 @GetMapping("findAll") public List<EduTeacher> findAll(){ List<EduTeacher> list = eduTeacherService.list(null); return list; } }
统一返回的json时间格式
默认情况下json时间格式带有时区,并且是世界标准时间,和我们的时间差了八个小时
在application.properties中设置
#返回json的全局时间格式 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8
截图:
2.删除功能
1. 先在配置文件中加入逻辑删除插件
/** * 逻辑删除插件 */ @Bean public ISqlInjector sqlInjector() { return new LogicSqlInjector(); }
2. 在isDeleted的字段上加上注解@TableLogic
3.在controller添加方法
//2.根据id删除数据 @DeleteMapping("{id}") public boolean removeById(@PathVariable String id){ return eduTeacherService.removeById(id); }
3.了解Swagger
Swagger2介绍
前后端分离开发模式中,api文档是最好的沟通方式。
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
- 及时性 (接口变更后,能够及时准确地通知相关前后端开发人员)
- 规范性 (并且保证接口的规范性,如接口的地址,请求方式,参数及响应格式和错误信息)
- 一致性 (接口信息一致,不会出现因开发人员拿到的文档版本不一致,而出现分歧)
- 可测性 (直接在接口文档上进行测试,以方便理解业务)
创建公共模块,整合Swagger
具体使用
1.创建如图的结构
2.创建swaggerconfig
@Configuration//配置类 @EnableSwagger2//swagger注解 public class SwaggerConfig { @Bean public Docket webApiConfig(){ return new Docket(DocumentationType.SWAGGER_2) .groupName("webApi") .apiInfo(webApiInfo()) .select() .paths(Predicates.not(PathSelectors.regex("/admin/.*"))) .paths(Predicates.not(PathSelectors.regex("/error.*"))) .build(); } private ApiInfo webApiInfo(){ return new ApiInfoBuilder() .title("网站-课程中心API文档") .description("本文档描述了课程中心微服务接口定义") .version("1.0") .contact(new Contact("Helen", "http://atguigu.com", "55317332@qq.com")) .build(); } }
3.在service_edu中添加依赖
<dependency> <groupId>com.dm</groupId> <artifactId>service-base</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
4.最后在service_edu启动类添加注解,设置包扫描规则
5.测试在浏览器中输入:
http://localhost:8001/swagger-ui.html
页面如下:
此时我们看看数据库中的内容
我们输入1,然后点击try it out
200表示成功
我们此时再来看一下数据库
会发现isDeleted已经是1了。
接下来可以加注解,让swagger页面可以有提示信息
定义在类上:@Api
定义在方法上:@ApiOperation
定义在参数上:@ApiParam
@Api(description="讲师管理") @RestController @RequestMapping("/admin/edu/teacher") public class TeacherAdminController { @Autowired private TeacherService teacherService; @ApiOperation(value = "所有讲师列表") @GetMapping public List<Teacher> list(){ return teacherService.list(null); } @ApiOperation(value = "根据ID删除讲师") @DeleteMapping("{id}") public boolean removeById( @ApiParam(name = "id", value = "讲师ID", required = true) @PathVariable String id){ return teacherService.removeById(id); } }
此时就会看到一个有好的提示了