Spring Boot 教程 (3) - RESTful
1. RESTful风格
1.1 简介与特点
RESTful是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTful适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。
RESTful特点包括:
1、每一个URI代表1种资源;
2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源 (也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源(PATCH则比较少用到);
3、通过操作资源的表现形式来操作资源;
4、资源的表现形式是XML或者HTML;
5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。
1.2 RESTful架构
RESTful架构是对MVC架构改进后所形成的一种架构,通过使用事先定义好的接口与不同的服务联系起来。在RESTful架构中,浏览器使用POST,DELETE,PUT和GET四种请求方式分别对指定的URL资源进行增删改查操作。因此,RESTful是通过URI实现对资源的管理及访问,具有扩展性强、结构清晰的特点。
RESTful架构将服务器分成前端服务器和后端服务器两部分,前端服务器为用户提供无模型的视图;后端服务器为前端服务器提供接口。浏览器向前端服务器请求视图,通过视图中包含的AJAX函数发起接口请求获取模型。
项目开发引入RESTful架构,利于团队并行开发。在RESTful架构中,将多数HTTP请求转移到前端服务器上,降低服务器的负荷,使视图获取后端模型失败也能呈现。但RESTful架构却不适用于所有的项目,当项目比较小时无需使用RESTful架构,项目变得更加复杂。所以要根据项目的实际情况评估是否使用RESTful架构,在如今这种架构也是越来越流行的。接下来带领大家展示一下RESTful风格的调用。
2 RESTful开发
2.1 常见的RESTful风格调用
GET
:请求从服务器获取特定资源。举个例子:GET /student(获取所有学生)。/**
* GET :请求从服务器获取特定资源。举个例子:GET /student(获取所有学生)
* @return List<Student>
*/
@GetMapping("/student")
public List<Student> student() {
return studentService.findAll();
}
GET
:请求从服务器获取特定资源。举个例子:GET /student/1(获取id为1学生)。/**
* GET :请求从服务器获取特定资源。举个例子:GET /student/1(获取id为1学生)
* @param id
* @return Student
*/
@GetMapping("/student/{id}")
public Student student(@PathVariable("id") Long id) {
return studentService.findOne(id);
}
POST
:在服务器上创建一个新的资源。举个例子:POST /student(添加学生)。/**
* POST :在服务器上创建一个新的资源。举个例子:POST /student(添加学生)
* @param student
*/
@PostMapping("/student")
public void student(@RequestBody Student student) {
studentService.add(student);
}
PUT
:更新服务器上的资源(客户端提供更新后的资源)。举个例子:PUT /student/1(更新学号为 1 的学生的所有信息)。/**
* PUT :更新服务器上的资源(客户端提供更新后的资源)。举个例子:PUT /student/1(更新学号为 1 的学生的所有信息)
* @param id
*/
@PutMapping("/student/{id}")
public void updateById(@PathVariable("id") Long id, Student student) {
studentService.updateAll(id,student);
}
DELETE
:从服务器删除特定的资源。举个例子:DELETE /student/1(删除学号为 1 的学生)。/**
* DELETE :从服务器删除特定的资源。举个例子:DELETE /student/1(删除学号为 1 的学生)
* @param id
*/
@DeleteMapping("/student/{id}")
public void deleteById(@PathVariable("id") Long id) {
studentService.delete(id);
}
常用的主要就是这些请求方式,其他的请求方式都用的非常的少,但是我在代码里也有写,有兴趣的可以去我的Github看看代码,Github连接地址在博客的末尾。
3. 项目地址
本项目传送门:spring-boot-RESTful
此教程会一直更新下去,觉得博主写的可以的话,关注一下,也可以更方便下次来学习。
最新文章
- stm32 usart 异步传输示例
- U家面试prepare: Serialize and Deserialize Tree With Uncertain Children Nodes
- express框架路由配置及congtroller自动加载
- (Interface)接口特点
- Android-Service生命周期
- Unity3D研究院之自制批量关联材质与贴图插件
- IE、chrome、火狐中如何调试javascript脚本
- 内容与Tag
- Debian安装记录
- golang:interface{}类型测试
- 解读 《2014 最流行编程语言》 by Code Eval
- Mysql 忘密码 + Phpadmin 修改密码无法登陆
- Arcengine 开发,FeatureClass新增feature时“The Geometry has no z-value”或";The Geometry has null z-value";的解决方案
- python常用标准库
- 五分钟上手Markdown
- Java虚拟机栈和本地方法栈
- app后端设计(5)-- 表情的处理
- kafka实战
- 基于html5 plus + Mui 移动App开发(三)-食全库
- webpack 打包测试和生产多个版本