Spring Boot入门|第六篇:Spring Boot 开发 RESTful

164 阅读3分钟

这是我参与8月更文挑战的第6天,活动详情查看: 8月更文挑战

面试官:了解RESTful吗?

我:听说过。

面试官:那什么是RESTful?

我:就是用起来很规范,挺好的

面试官:是RESTful挺好的,还是自我感觉挺好的

我:都挺好的。

面试官:… 把门关上。

我:… 要干嘛?先关上再说。

面试官:我说出去把门关上。

我:what ?,夺门而去

今天这篇文章主要想写一下关于Restful,大家势必或多或少听说过,但是看过很多RESTful相关的文章总结,参齐不齐,结合工作中的使用,非常有必要归纳一下,RESTful只是一种架构方式的约束,给出一种约定的标准,完全严格遵守RESTful标准并不是很多,也没有必要。但是在实际运用中,有RESTful标准可以参考,是十分有必要的。

实际上在工作中对api接口规范、命名规则、返回值、授权验证等进行一定的约束,一般的项目api只要易测试、足够安全、风格一致可读性强、没有歧义调用方便我觉得已经足够了,接口是给开发人员看的,也不是给普通用户去调用。

认识 RESTFul

1)REST(英文:Representational State Transfer,简称 REST)

2)一种互联网软件架构设计的风格,但它并不是标准,它只是提出了一组客户端和服务器交互时的架构理念和设计原则,基于这种理念和原则设计的接口可以更简洁,更有层次,REST这个词,是 Roy Thomas Fielding 在他 2000 年的博士论文中提出的。

3)任何的技术都可以实现这种理念,如果一个架构符合 REST 原则,就称它为 RESTFul 架构

4)比如我们要访问一个 http 接口:http://localhost:8080/boot/order?id=1021&status=1

5)采用 RESTFul 风格则 http 地址为:http://localhost:8080/boot/order/1021/1

Spring Boot 开发 RESTFul

Spring boot 开发 RESTFul 主要是几个注解实现:

(1) @PathVariable

获取 url 中的数据

该注解是实现 RESTFul 最主要的一个注解

(2) @PostMapping

接收和处理 Post 方式的请求

(3) @DeleteMapping

接收 delete 方式的请求,可以使用 GetMapping 代替

(4) @PutMapping

接收 put 方式的请求,可以用 PostMapping 代替

(5) @GetMapping

接收 get 方式的请求

案例:使用 RESTful 风格模拟实现对学生的增删改查操作

项目名称:014-springboot-restful

该项目集成了 MyBatis、spring、SpringMVC,通过模拟实现对学生的增删改查操作

(6) pom.xml 文件添加内容如下

(7) application.yml 核心配置文件

(8) 通过逆向工程生成 DAO

(9) 创建 RESTfulController,并编写代码

(10) 使用 Postman 模拟发送请求,进行测试

(11) 总结:其实这里我们能感受到的好处

➢ 传递参数变简单了

➢ 服务提供者对外只提供了一个接口服务,而不是传统的 CRUD 四个接口

请求冲突的问题

项目名称:015-springboot-restful-url-conflict

➢ 改路径

➢ 改请求方式

创建 RESTfulController 类,结合 Postman 进行测试说明

RESTful 原则

➢ 增 post 请求、删 delete 请求、改 put 请求、查 get 请求

➢ 请求路径不要出现动词

    例如:查询订单接口

              /boot/order/1021/1(推荐)

              /boot/queryOrder/1021/1(不推荐)

➢ 分页、排序等操作,不需要使用斜杠传参数

      例如:订单列表接口

              /boot/orders?page=1&sort=desc

一般传的参数不是数据库表的字段,可以不采用斜杠