日志

Spring Boot 教程 (3) - RESTful

 来源    2020-05-23    1  

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. 项目地址

    本项目传送门:spring-boot-RESTful

    此教程会一直更新下去,觉得博主写的可以的话,关注一下,也可以更方便下次来学习。

相关文章
Spring Boot教程(二十二)使用Swagger2构建强大的RESTful API文档(1)
日志由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这 ...
Spring Boot教程(十九)RESTful API单元测试
日志下面针对该Controller编写测试用例验证正确性,具体如下.当然也可以通过浏览器插件等进行请求提交验证. @RunWith(SpringJUnit4ClassRunner.class) @Spri ...
Spring Boot教程(十八)构建RESTful API
日志首先,回顾并详细说明一下在快速入门中使用的@Controller.@RestController.@RequestMapping注解.如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建 ...
1
Spring Boot教程(三)消费Restful的web服务
日志构架工程 创建一个springboot工程,去消费RESTFUL的服务.这个服务是 http:///gturnquist-quoters.cfapps.io/api/random ,它会随机返回Jso ...
1
Spring Boot教程(二十三)使用Swagger2构建强大的RESTful API文档(2)
日志添加文档内容 在完成了上述配置后,其实已经可以生产文档内容,但是这样的文档主要针对请求本身,而描述主要来源于函数等命名产生,对用户并不友好,我们通常需要自己增加一些说明来丰富文档内容.如下所示,我们通 ...
如何在Spring Boot中保护RESTful API而不保留jsessionid
问答我需要创建一个SpringBoot RESTful API,供Web项目或移动应用程序使用. 我的问题是如何在没有通常的基本授权的情况下保护它,它将"jsessionid"返回给W ...
使用 Spring Boot Actuator 构建 RESTful Web 应用
日志Spring Boot Actuator 是 Spring Boot 的一个子项目.通过它,可以很轻易地为应用提供多种生产级服务.本教程中,你将通过构建一个应用来学习如何添加这些服务. 1. 你需要构 ...
1
Spring Boot实战:Restful API的构建
日志上一篇文章讲解了通过Spring boot与JdbcTemplate.JPA和MyBatis的集成,实现对数据库的访问.今天主要给大家分享一下如何通过Spring boot向前端返回数据. 在现在的开 ...
Spring Boot 2.0 教程 | 快速集成整合消息中间件 Kafka
日志欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site ...
1
Spring boot教程
日志1.首先是新建Maven工程 2.引入Pom依赖 3.新建一个Controller 4.运行Main方法 5.浏览器访问 pom.xml <project xmlns="http:// ...
程序员DD 《Spring boot教程系列》补充
日志最近在跟着程序员DD的Spring boot教程系列学习Spring boot,由于年代原因,Spring boot已经发生了一些变化,所以在这里进行一些补充. 补充的知识大多来自评论区,百度,Sta ...
SpringBoot整合Quartz定时任务 系统job Spring Boot教程 调度任务
日志原文地址:https://www.cnblogs.com/allalongx/p/8477368.html 构建工程 创建一个Springboot工程,在它的程序入口加上@EnableScheduli ...
Spring Boot 构建一个 RESTful Web Service
日志1  项目目标: 构建一个 web service,接收get 请求http://localhost:8080/greeting响应一个json 结果:{"id":1," ...
SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务
日志一.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...
1
Spring Boot 2.0 教程 | @ModelAttribute 注解
日志欢迎关注微信公众号: 小哈学Java 文章首发于个人网站: https://www.exception.site/springboot/spring-boot-model-attribute Spri ...
Spring Boot 2.0 教程 | 配置 Undertow 容器
日志欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 资深架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 文章首发于个人网站 https://ww ...
1
Spring Boot 2.0 教程 | AOP 切面统一打印请求日志
日志欢迎关注微信公众号: 小哈学Java 文章首发于个人网站 https://www.exception.site/springboot/spring-boot-aop-web-request 本节中,您 ...
[译]Spring Boot 构建一个RESTful Web服务
日志翻译地址:https://spring.io/guides/gs/rest-service/ 构建一个RESTful Web服务 本指南将指导您完成使用spring创建一个“hello world”R ...
Spring Boot 教程
日志Spring boot是一个Spring框架模块,它为Spring框架提供RAD(快速应用程序开发)功能.它高度依赖于启动器模板功能,该功能非常强大且完美无缺. ###1.什么是Spring boot ...
只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常
日志统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生. 比较通用的返回值格式如下: public cl ...
1