Spring Boot 实现 RESTful
一、认识 REST
REST一种软件架构风格、设计风格,基于这种理念和原则设计的接口可以更简洁,更有层次。而基于REST构建的 API 就是RESTful API
在REST中,通过 URL 进行资源定位,用 HTTP (GET ,POST,DELETE,PUSH等)描述操作,完成功能。
比如我们要访问一个http 接口
普通方式:
http://localhost:8080/boot?id=2&s=1
RESTFul 风格
http://localhost:8080/boot/2/1
二、RESTFul 主要注解
(1) @PathVariable
获取 url 中的数据
(2) @PostMapping
接收和处理 Post 方式的请求
(3) @DeleteMapping
接收 delete 方式的请求,可以使用 GetMapping 代替
(4) @PutMapping
接收 put 方式的请求,可以用 PostMapping 代替
(5) @GetMapping
接收 get 方式的请求
动作 | 普通CRUD的URL | 普通CRUD的HTTP方法 | Restful 的URL | Restful的CRUD的HTTP方法 |
---|---|---|---|---|
查询 | Article/id=1 | GET | Article/{id} | GET |
添加 | Article ?title=xxx&body=xxx | GET/POST | Article | POST |
修改 | Article/update?id=xxx | GET | Article/{id} | PUT或PATCH |
删除 | Article/delete?id=oxx | GET | Article/{id} | DELETE |
可以看出,RESTful 风格的CRUD比传统的CRUD简单明了,它通过HTTP方法来区分增加、修改、删除和查询。
总结:
- 传递参数变简单了
- 服务提供者对外只提供了一个接口服务,而不是传统的 CRUD 四个接口
在Spring Boot中,如果要返回JSON数据,则只需要在控制器中用@RestCortoller注解。
如果提交HTTP方法,则使用注解@RequestMapping来实现,它有以下两个属性:
- Value : 用来规定URI
- Method : 用来制定 HTTP 请求方法
案例:使用 RESTful 风格模拟实现对学生的增删改查操作
1)在Springboot基础上导入依赖
<!--MyBatis 集成 SpringBoot 框架起步依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<!--MySQL 驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<build>
<!--指定配置资源的位置-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>