一 需求调研、需求分析(即应用场景)
- 接口(大方向,即API)的设计可以更简洁,更有层次
- REST : (英文: Representational State Transfer , 中文: 表现层状态转移)。
二 框架的设计思想
- 一种互联网软件架构设计的风格,但它并不是标准。
- 它只是提出了一组客户端和服务器交互时的架构理念和设计原则。
三 体系的组织结构设计(重要组件、模块划分、模块间交互)
http://localhost:8080/myboot/students?page=1&pageSize=20
其中:
students是资源的名称(资源的名称是一个名词(如student),资源名称来指定要操作的东西是什么)
page=1&pageSize=20是资源的描述(一般是一些额外的数据,如id等)
四 工作原理、运行流程
1、一句话说明REST: 使用url表示资源 ,使用http动作操作资源。案例:
比如我们要访问一个 http 接口:http://localhost:8080/boot/order?id=1021&status=1
采用 RESTFul 风格则 http 地址为:http://localhost:8080/boot/order/1021/1
2、具体1:资源使用url表示,通过名词表示资源。
在url中,使用名词表示资源, 以及访问资源的信息, 在url中,使用“ / " 分隔对资源的信息
http://localhost:8080/myboot/student/1001
3、具体2:使用http中的动作(请求方式), 表示对资源的操作(CURD)
(1)GET: 查询资源 -- sql select
处理单个资源: 用他的单数方式
http://localhost:8080/myboot/student/1001
http://localhost:8080/myboot/student/1001/1
处理多个资源:使用复数形式
http://localhost:8080/myboot/students/1001/1002
(2)POST: 创建资源 -- sql insert
http://localhost:8080/myboot/student
在post请求中传递数据
<form action="http://localhost:8080/myboot/student" method="post">
姓名:<input type="text" name="name" />
年龄:<input type="text" name="age" />
</form>
(3)PUT: 更新资源 -- sql update
<form action="http://localhost:8080/myboot/student/1" method="post">
姓名:<input type="text" name="name" />
年龄:<input type="text" name="age" />
<input type="hidden" name="_method" value="PUT" />
</form>
(4)DELETE: 删除资源 -- sql delete
<a href="http://localhost:8080/myboot/student/1">删除1的数据</a>
(5)需要的分页, 排序等参数,依然放在 url的后面, 例如 http://localhost:8080/myboot/students?page=1&pageSize=20
五 详细设计:实现方法(技术)
Spring Boot 开发 RESTful 主要是几个注解实现 :
@PathVariable : 从url中获取数据
该注解是实现 RESTFul 最主要的一个注解
@GetMapping: 支持的get请求方式, 等同于 @RequestMapping( method=RequestMethod.GET)
@PostMapping: 支持post请求方式 ,等同于 @RequestMapping( method=RequestMethod.POST)
@PutMapping: 支持put请求方式, 等同于 @RequestMapping( method=RequestMethod.PUT)
@DeleteMapping: 支持delete请求方式, 等同于 @RequestMapping( method=RequestMethod.DELETE)
@RestController: 符合注解, 是@Controller 和@ResponseBody组合。
在类的上面使用@RestController , 表示当前类者的所有方法都加入了 @ResponseBody