Spring Boot+Spring Security项目开发(一):RESTful API介绍

说在前面

博主最近会有很多项目跟大家一起分享,做完后会上传github上的,希望读友们能给博主提提意见哈哈

这个项目是第三方登录和安全方面的,关于后台与app和网站的登录连接操作的实战项目


RESTful API


使用RestController时Spring会把返回的对象或List直接转换成json串返回给前台

@JsonView使用步骤

使用接口来声明多个视图
在值对象的get方法上指定视图
在Controller方法上指定视图

代码重构

1.@RequestMapping(value = “/user”,method = RequestMethod.GET)可以用@GetMapping(“/user”)来代替
2.将/user前缀提到方法上,因为这是固定的前缀所以避免每次都要去加上

学习

测试用例的使用

处理创建请求

1.@RequestBody映射请求体到java方法的参数,这个注解可以解析请求传过来的字符串
2.日期类型参数的处理,实际开发中不使用日期格式和配置转换器的方式,使用时间戳,前端的展示交给前台处理
3.@Valid注解和BindingResult验证请求参数的合法性并处理校验结果

@Valid->@NotBlank->BindingResult->输出

开发用户信息修改和删除服务

常用的验证注解
自定义消息
自定义校验注解@Target({…})表示自定义

这里写图片描述

RESTful API 错误处理

Spring Boot中默认的错误处理机制
* 浏览器发出来的就是一段html页面
* 如果不是html就是一段json串

自定义异常处理
* 自定义异常处理器来处理抛出的异常

RESTful API 的拦截

过滤器(filter) -Servlet
* 可以拿到原始的http请求的响应和信息,但是拿不到真正处理这个请求方法的信息

拦截器(interceptor) -SpringMVC
* 既可以拿到原始的http请求和响应,也可以拿到真正处理这个请求方法的信息,但是拿不到方法被调用的时候真正被调用的那个参数的值

切片(Aspect) -AOP
* 可以拿到方法被调用的时候真正被调用的那个参数的值,但是拿不到原始的http和http请求响应的那个对象了

这里写图片描述

RESTful API 文件上传和下载

上传服务器时使用输入输出流方式传递
在本地生成时则直接transfer

RESTful API 异步处理应对多线程问题

使用Runnable异步处理Rest服务
使用DeferredResult异步处理Rest服务
异步处理配置

使用副线程去处理请求,主线程空闲出来接收其他http请求,增大了服务器的吞吐量

与前端开发并行工作

使用swagger自动生成html文档
* @EnableSwagger2
* @ApiParam(“”) 参数上
* @ApiOperation(“”) 方法上

使用WireMock快速伪造RESTful服务
* WireMock是一个独立服务器
* MockServer类

猜你喜欢

转载自blog.csdn.net/tryandfight/article/details/80461250