Spring Boot 教程 - 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. 项目地址
本项目传送门:
- GitHub ---> spring-boot-RESTful
- Gitee ---> spring-boot-RESTful
此教程会一直更新下去,觉得博主写的可以的话,关注一下,也可以更方便下次来学习。
- 作者:Butterfly-Tri
- 出处:Butterfly-Tri个人博客
- 版权所有,欢迎保留原文链接进行转载🙃