rest风格使用两个变量_Rest风格开发简述

一 Rest名词由来概述

简述 Rest 这个名次 首先我们需要了解 Roy Tomas Fields 这个人。Fields 生于1965年是美国的计算机科学家,参与了HTTP协议规范制定,是 Apache HTTP Server 联合创始人之一,是 Representational State Transfer (REST) 规范的制定者。

二Rest 名词概述

Rest (Representational State Transfer)字面上是表现层状态转移的意思,稍微深入理解一点就是从URI获得的资源在表现层进行状态的转移。

- 资源: 就是URI(在Rest里面又可以称为 End Point) 请求获得资源。

- 表现层:就是资源的表现形式,比如说以字符串方式表现,以json或者XML方式形式表现。

- 状态转移:就是对资源操作后的状态,比如对资源进行访问,修改,添加,删除。

如果我们开发的网站符合Rest风格设计规范,那么我们统称为Rest风格网站。

三 HTTP对应Rest的行为

- GET请求对应Rest里面的访问。

- POST请求对应Rest里面的新增。

- PUT请求对应Rest里面的修改。

- PATCH请求对应Rest里面的修改,这个比较少用,是java不提倡的方式之一。

- DELETE对应Rest里面的删除。

有关HTTP其他行为在此不概述,不是本文重点。

四 Rest风格开发不合理示例

4.1 在Rest风格中URI不推荐使用动词

错误: @GetMapping("uri/get/1327")

正确: @GetMapping("uri/1327")

4.2 在Rest分格中不推荐使用版本号

在Rest风格中URI获取资源是唯一的,不存在几个版本的说法。

错误: @GetMapping("uri/v1/1327")

正确: @GetMapping("uri/1327")

4.3 经验之谈如果是复数建议使用复数形式

比如请求的用户是多数,那么使用复数形式。

不推荐: @GetMapping("uri/user/1327")

推荐: @GetMapping("uri/users/1327")

五 使用SpiingMVC开发遵循Rest规范概述

在spring4.3 之前 注解对应:

- @RequestMapping(path ="/uri/youku1327",method = RequestMethod.GET)

- @RequestMapping(path ="/uri/youku1327",method = RequestMethod.POST)

- @RequestMapping(path ="/uri/youku1327/{id}",method = RequestMethod.PUT)

- @RequestMapping(path ="/uri/youku1327/{id}",method = RequestMethod.DELETE)

在spring4.3之后对@RequestMapping注解进行了封装:

- @GetMapping("/uri/youku1327")

- @PostMapping("/uri/youku1327")

- @PutMapping("/uri/youku1327/{id}")

- @DeleteMapping("/uri/youku1327/{id}")

spingmvc常用注解概述:

- 在URL中的变量可以使用@PathVariable注解获得;

- 参数使用json格式,可以使用@RequestBody注解接收,将json对象转为java对象;

- 响应数据使用 @ResponseBody注解将java对象转为json响应给前端;消息的转换内部是通过HttpMessageConvert进行实现;

- 后面还提供了@RestController注解里面封装了@Controller和@ResponseBody注解,简化开发,自动响应为josn格式,默认是"application/json;chartset=UTF-8";

- PostMapping等行为注解里面有consumers表示限定该方法的请求类型;produces表示限定该方法返回的媒体类型。

- 响应的返回值可以使用ResponseEntity实体类,里面可以封装body,head,status;

- 通常的响应状态码我们可以使用HttpStatus枚举结合@ResponseStatus方式;

- 自定义异常使用@ControllerAdvice 结合 @ExceptionHandler 方式;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值