后端Restful API
- Restful是目前最流行的 API 设计规范,用于 Web 数据接口的设计。如果一个架构符合REST原则,就称它为RESTful架构。
- Restful参见
- RestfulAPI最佳实践
1. @RestController注解
@RestController = @Controller + @ResponseBody
区别
2. @RequestMapping注解
@RequestMapping在类的级别上的注解会将一个特定请求或者请求模式映射到一个控制器之上。之后你还可以另外添加方法级别的注解来进一步指定到处理方法的映射关系。
@RequestMapping详解
3. @PathVariable注解
当URL指向的是某一具体业务资源(或者资源列表),例如博客、用户时,使用@PathVariable。
形式如:/blogs/{blogId},使用@Pathvariable(value = "itemId")
获取url路径中的值。
4. @RequestParam注解
当URL需要对资源或者资源列表进行过滤,筛选时,用@RequestParam。
形式如:blogs?blogId=1,使用@RequestParam("itemId")
获取url参数中的值。
@RequestParam注解的参数不能为空!如果已经集成swagger,可以改为使用swgger注解@ApiImplicitParam,或者与@ApiParam联合使用。
5. @RequestBody注解
5. 常见用法总结❤️
- 使用Get方式请求时,通常使用@RequestParam或者@PathVariable注解来接收传递的参数,如果使用实体类接收,不要使用@RequestBody注解。
- 使用Post方式请求时,通常使用@RequestBody注解,前端使用json封装数据,后端创建一一对应的属性的实体类来接收json。
前端如何向后端传值
1. 查询字符串
URL="xxx/blogs?id=5"
字符串拼接方式:
var item;
url="xxx/blogs?id=" + item + "";
2. url带值
URL="xxx/blogs/5"
HTTP补充
1. HTTP方法
2. HTTP信息
前后端日期处理格式
1. 前端给后端DTO
后端接收前端传来的封装为json的日期,使用String接收(不推荐);
使用@JsonFormat注解,或者@DateTimeFormat注解将string自动转换为日期格式
2. 后端给前端DTO
- 后端将数据封装为DTO给前端,其中的实体属性为时间类型,则使用Date类型(ZoneDateTime类型);
- jackson在序列化时间时是按照国际标准时间GMT进行格式化的,而在国内默认时区使用的是CST时区,两者相差8小时。,需要在属性上加注解,使时区一致。
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
- 注意pattern不要写错!